我有一个父/根POM,(1)聚合子模块,(2)声明一个基于属性值有条件激活的配置文件。所以:
<packaging>pom</packaging>
<modules>
<module>moduleA</module>
<module>moduleB</module>
<module>moduleC</module>
</modules>
<profiles>
<profile>
<id>myProfile</id>
<activation>
<property>
<name>animal</name>
<value>cat</value>
</property>
</activation>
</profile>
</profiles>
在moduleA
中,我声明与父级相同的配置文件,并且希望在使用父级(moduleA
)的激活条件构建animal == cat
时激活它。但那不起作用。所以如果这是模块A的POM:
<properties>
<shape>circle</shape>
</properties>
<profiles>
<profile>
<id>myProfile</id>
<properties>
<shape>square</shape>
</properties>
</profile>
</profiles>
我使用moduleA
构建mvn help:evaluate -Danimal=cat
,评估${shape}
表示其值为circle
,而非square
正如我所期望的那样。因此,在使用其父级激活标准进行构建时,似乎未激活子配置文件。
有办法做到这一点吗?我是否真的必须将<activation>
块从父级复制并粘贴到其所有子级模块中,这样我才能获得相同的行为?
答案 0 :(得分:0)
尝试重复moduleA中的激活条件。您不应该从父级重复其他个人资料内容,但激活条件需要匹配。
<profile>
<id>myProfile</id>
<activation>
<property>
<name>animal</name>
<value>cat</value>
</property>
</activation>
</profile>
通常尝试从一个模块到另一个模块共享配置文件配置是棘手的。还有其他问题: