我的构建过程非常复杂,在 Windows 中运行时需要执行一些操作,在 Linux 中运行时需要执行一些操作,并且这些操作需要放置在许多不同的 POM 中。
我知道我可以根据操作系统激活某个配置文件。但我发现的所有示例都包括在标签内采取行动<profiles> ... </profiles>
,其中还包括这些配置文件的激活标准。我试图避免的是必须声明许多这样的部分:
POM 1:
</profiles>
<profile>
<activation>
<os>
<family>Windows</family>
<arch>x86</arch>
</os>
</activation>
<build>
...
</build>
</profile>
...
</profiles>
然后,当我需要在不同的 POM 中为 Windows 做一些事情时,同样如此,很多次……对于某些配置文件,激活更广泛。
我想在一个地方定义激活策略,然后执行以下操作:
<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 中重新声明其激活策略的标签,或者有没有办法避免所有这些重复?
任何帮助表示赞赏,我有点困惑和惊讶,在网上找到除了基本示例之外的任何东西是多么困难。