有许多应用程序需要从许多模块构建和打包。
在父pom中,我使用配置文件为不同的应用程序调用构建。
root
parent/
pom.xml
moduleA/
pom.xml
moduleB/
pom.xml
moduleC/
pom.xml
例如,app" profile-1"需要构建现有模块的子集并将其组合为tar球。 tar将包含几个jar和从目标/子模块中提取的不同配置文件。
我使用exec-maven-plugin调用的shell脚本将tar放在一起。
我面临的问题是,在一个应用程序中,我需要多次构建相同的模块,但使用不同的maven参数。
这样做的最佳方式是什么?
<profiles>
<profile>
<id>profile-1</id>
<modules>
<module>../moduleA</module>
<module>../moduleB</module>
<!-- <module>../moduleC</module> -->
</modules>
<properties>
<global.version>0.0.1-SNAPSHOT</global.version>
</properties>
<build>
<!-- use maven exec plugin to run a shell script which generates the tar ball picking jars and config files from different modules target dirs -->
<plugins>
</plugins>
</build>
<profile>
</profiles>
示例子模块pom
<groupId>com.test</groupId>
<artifactId>moduleC</artifactId>
<packaging>bundle</packaging>
<version>${global.version}</version>
<name>test :: ${project.artifactId} :: ${name} </name>
<parent>
<groupId>com.test</groupId>
<artifactId>parent</artifactId>
<version>${global.version}</version>
<relativePath>../parent</relativePath>
</parent>
我尝试的事情:
1)我可以分成多个配置文件并将其作为-Pprofile-1,profile-2调用吗?
它不适合我,但我会做错事。
2)使用另一个具有mvn命令行的shell脚本以不同的方式构建moduleC - 即使我传入&#34; -Dglobal_version&#34;,从mvn命令行运行的moduleC似乎也没有在存储库中找到父文件。
我试过做一个&#34; -N&#34;在构建应用程序之前构建将父pom放入存储库但没有帮助。
答案 0 :(得分:0)
最好的方法是:
mvn clean install --projects moduleA, moduleB
mvn clean install --projects moduleB, moduleC
您无法使用maven(see this stackoverflow question)
运行多个版本