Sel*_*sra 5 java eclipse svn maven
我有一个项目,有多个maven项目和1个父pom,所有其他项目作为maven模块.
的pom.xml
<modules>
<module>abc-codegen</module>
<module>stellar-codegen</module>
<module>abc-engine</module>
<module>stellar-engine</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
在这些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>
Run Code Online (Sandbox Code Playgroud)
但是,为了与其他此类应用程序保持一致,codegen项目应保留在父文件夹(svn/my-service/trunk)中.
我的想法之一是在父文件夹下创建另一个名为pom-codegen.xml的pom文件,并在需要时通过明确调用生成代码
mvn -f pom-codegen.xml clean deploy
Run Code Online (Sandbox Code Playgroud)
我唯一需要做的就是告诉我的CI执行上述命令并在需要时触发部署工件.而其他构建(mvn clean install)将检查代码的完整性.我们可以做任何其他方法吗?
cow*_*wls 13
是的,您可以使用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>
Run Code Online (Sandbox Code Playgroud)
现在构建您运行的所有内容:
mvn clean install -P aggregate-all
Run Code Online (Sandbox Code Playgroud)
要构建您运行的代码生成项目
mvn clean install -P aggregate-codegen
Run Code Online (Sandbox Code Playgroud)
显然,您可以调整这种方法以满足您的需求,但效果最佳.因此,您可以创建仅构建引擎项目的配置文件.
| 归档时间: |
|
| 查看次数: |
17680 次 |
| 最近记录: |