如何在子模块中停用 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 配置文件?的主要内容,如果未能解决你的问题,请参考以下文章

Maven - 根据属性激活子配置文件

即使另一个配置文件被激活,如何保持 activeByDefault 的 Maven 配置文件处于活动状态?

Maven:如何根据子模块是不是包含文件来激活配置文件?

Maven的pom.xml文件结构之基本配置parent和继承结构

Maven的pom.xml文件结构之基本配置parent和继承结构[转]

Maven -- 模块继承(子模块无需写依赖的version)