我的构建过程非常复杂,我需要在Windows中运行时执行一些操作,在Linux中运行一些操作,这些操作需要放在许多不同的POM中。
我知道我可以根据操作系统激活某个配置文件。但我发现的所有示例都包括在<profiles> ... </profiles>
标记内执行操作,其中还包括这些配置文件的激活条件。我要避免的是必须声明许多这样的部分:
POM 1:
</profiles>
<profile>
<activation>
<os>
<family>Windows</family>
<arch>x86</arch>
</os>
</activation>
<build>
...
</build>
</profile>
...
</profiles>
然后我需要在不同的POM中为窗口执行某些操作,在整个地方多次...对于某些配置文件,激活更广泛。
我想在一个地方定义激活策略,然后执行以下操作:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<!-- if profile A is active -->
<source>1.6</source>
<target>1.6</target>
<!-- if profile B is active -->
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
只需根据活动配置文件以不同方式配置插件,而无需在大量POM文件中复制插件声明和每个配置文件的所有内容......
另外,如果配置文件A处于活动状态,如何在多个位置配置内容?我是否必须重新声明每个POM中的标签及其激活策略,还是有办法避免所有这些重复?
感谢任何帮助,我有点困惑,并且惊讶地发现在网上找到除基本示例之外的任何内容有多么困难。