来自孩子父母的maven覆盖个人资料

时间:2014-04-14 14:15:54

标签: maven maven-plugin

我有一个多模块maven项目。

parent-module-->child-submodule1
             \->child-submodule2

儿童既是子模块又是父模块的子节点。

Child-submodule1有一个非常具体的构建配置文件my-profile应该与他的兄弟(子模块2)共享,因为它为两者设置了环境。

我把这个“my-profile”移到了父母那里。 现在,当我构建激活此配置文件时,它会执行三次,因此构建失败(因为此配置文件在此处执行非常具体的操作)。

我需要在父级中只执行一次配置文件,并在子级中跳过。 我尝试删除父子关系,这种方式可以工作,但我还有其他问题需要解决(从父母那里执行的依赖)。

我该怎么办? 我可以覆盖孩子停用它的配置文件吗?

2 个答案:

答案 0 :(得分:3)

您无法停用儿童中的个人资料或阻止其运行。

但是,您可以在父级<inherited>false</inherited>中的所有执行中设置my-profile

答案 1 :(得分:0)

或者,您可以使用以下方法之一激活配置文件:

  1. 仅在两个子模块上设置特定属性值的激活策略
  2. <profiles>
      <profile>
        <activation>
          <property>
            <name>doit</name>
            <value>true</value>
          </property>
        </activation>
        ...
      </profile>
    </profiles>
    
    1. 使用特定文件或文件夹的存在,无论如何都可能在您的场景中。
    2. <profiles>
        <profile>
          <activation>
            <file>
              <exists>src/main/xcopy</exists>
            </file>
          </activation>
          ...
        </profile>
      </profiles>