[英]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.