[简化为简化]
parent
+- pom.xml
+- foo
+- src/main/resources/test.properties
我在父pom.xml
中设置了个人资料。每个配置文件都由命令行参数激活,并设置该组属性的值。
mvn clean compile -Dgroup1=true
问题是我必须在组之间复制整个配置文件。我只想为每个组定义<properties>
,并使用单个配置文件来控制构建顺序,插件和其他内容。
任何人都知道是否可以这样做?
答案 0 :(得分:2)
听起来我觉得你只想为每个配置文件创建一组不同的属性文件,如下所示:
<profiles>
<profile>
<id>group1</id>
<build>
<filters>
<filter>src/main/resources/propertyfile1.txt</filter>
<filter>src/main/resources/propertyfile2.txt</filter>
</filters>
</build>
</profile>
<profile>
<id>group2</id>
<build>
<filters>
<filter>src/main/resources/propertyfile3.txt</filter>
<filter>src/main/resources/propertyfile4.txt</filter>
</filters>
</build>
</profile>
</profiles>
现在每个配置文件都为您提供了不同的资源过滤值。
如果你还需要pom中的值,你可能需要做更多的处理,可能使用maven properties plugin或类似的东西。将插件定义的内容放在主构建元素中:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
</plugin>
并在各个配置文件中配置加载的文件:
<profile>
<id>group1</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<configuration>
<files>
<file>src/main/resources/propertyfile1.txt</file>
<file>src/main/resources/propertyfile2.txt</file>
</files>
</configuration>
</plugin>
</plugins>
</build>
</profile>
答案 1 :(得分:0)
我认为这可以通过<pluginManagement>
来实现。您可以在<pluginManagement>
部分的父pom中声明构建顺序,插件和其他内容,然后在每个子项中,您可以将<plugin>
与相应的properties
进行简化。