如何在子模块中停用 Maven 配置文件?
Posted
技术标签:
【中文标题】如何在子模块中停用 Maven 配置文件?【英文标题】:How to deactivate maven profile in child module? 【发布时间】:2011-08-16 07:09:34 【问题描述】:我有一个在父 pom.xml
中定义并由属性激活的配置文件。在子模块中,我需要停用它。如何做到这一点(它是 Maven 3)?
ps。据我所知,这不能合法地完成(MNG-4565、MNG-5083),但有什么可能的解决方法?
【问题讨论】:
【参考方案1】:这取决于。子 pom 不应该否认父 pom 的行为(就像LSP 用于构建过程)。在父 pom 中定义 profile 可能是个好主意,但仅在您真正需要的子 pom 中激活它。
如果你不能这样做,你可以通过具有确切值的属性激活父 pom 中的配置文件:
<profiles>
<profile>
<activation>
<property>
<name>environment</name>
<value>test</value>
</property>
</activation>
</profile>
</profiles>
然后在子 pom 中重新定义属性值。
【讨论】:
在子 pom.xml 中重新定义属性不会有任何影响,因为 Maven 在读取其属性之前构建了有效的 pom。以上是关于如何在子模块中停用 Maven 配置文件?的主要内容,如果未能解决你的问题,请参考以下文章
即使另一个配置文件被激活,如何保持 activeByDefault 的 Maven 配置文件处于活动状态?
Maven的pom.xml文件结构之基本配置parent和继承结构