是否可以在一个地方定义Maven 3配置文件(及其激活策略)并在以后重复使用?

时间:2013-10-27 17:44:26

标签: java maven build maven-3 maven-profiles

我的构建过程非常复杂,我需要在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中的标签及其激活策略,还是有办法避免所有这些重复?

感谢任何帮助,我有点困惑,并且惊讶地发现在网上找到除基本示例之外的任何内容有多么困难。

1 个答案:

答案 0 :(得分:0)

您可以在super-pom中为各种个人资料定义全局构建,并在所有pom中继承它