簡體   English   中英

maven項目的多個pom文件

[英]Multiple pom files for a maven project

我有一個項目,有多個maven項目和1個父pom,所有其他項目作為maven模塊。

的pom.xml

<modules>
    <module>abc-codegen</module>
    <module>stellar-codegen</module>
    <module>abc-engine</module>
    <module>stellar-engine</module>
</modules>

在這些maven項目中,很少有項目(abc-codegen,stellar-codegen)用於代碼生成。 codegen工件由其他maven模塊使用,例如abc-engine。

每次構建和發布其他應用程序模塊(abc-engine等)時,都可能無法構建codegen模塊。

POM-codegen.xml

<modules>
    <module>abc-codegen</module>
    <module>stellar-codegen</module>
</modules>

但是,為了與其他此類應用程序保持一致,codegen項目應保留在父文件夾(svn / my-service / trunk)中。

我的想法之一是在父文件夾下創建另一個名為pom-codegen.xml的pom文件,並在需要時通過明確調用生成代碼

mvn -f pom-codegen.xml clean deploy

我唯一需要做的就是告訴我的CI執行上述命令並在需要時觸發部署工件。 而其他構建(mvn clean install)將檢查代碼的完整性。 我們可以做任何其他方法嗎?

是的,您可以使用Maven配置文件來管理它。

例如,在父POM中創建一個配置文件部分

<profiles>
    <profile>
        <id>aggregate-all</id>
        <modules>
             <module>abc-codegen</module>
             <module>stellar-codegen</module>
             <module>abc-engine</module>
             <module>stellar-engine</module>
        </modules>
    </profile>
    <profile>
        <id>aggregate-codegen</id>
        <modules>
             <module>abc-codegen</module>
             <module>stellar-codegen</module>
        </modules>
    </profile>
</profiles>

現在構建您運行的所有內容:

mvn clean install -P aggregate-all

要構建您運行的代碼生成項目

mvn clean install -P aggregate-codegen

顯然,您可以調整這種方法以滿足您的需求,但效果最佳。 因此,您可以創建僅構建引擎項目的配置文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM