maven-enforcer-plugin - 在 Maven 中配置的位置

Posted

技术标签:

【中文标题】maven-enforcer-plugin - 在 Maven 中配置的位置【英文标题】:maven-enforcer-plugin - where to configure in Maven 【发布时间】:2014-09-17 19:53:08 【问题描述】:

我需要在哪里配置这个插件。

是否需要进入settings.xml级别或者每个项目或子项目的pom.xml文件级别?

【问题讨论】:

【参考方案1】:

这完全取决于你想应用你的实施者规则的项目/模块。

E.g. 
Parent -- pom.xml
|
|----module 1-------> pom.xml
|
|----module 2-------> pom.xml

如果您想在子模块 2 上应用您的规则 - 添加模块 2 的 pom.xml。

如果您想让您的插件对所有模块可见,请将其添加到父项目的 pom.xml 中。

如果您想让您的插件对您的环境/组织/公司中的所有项目可见,请为您的环境/组织/公司创建一个 bom(材料清单)。将你的插件添加到 bom.将 bom 发布到存储库并在您的项目中将其配置为父级。

【讨论】:

谢谢,我尝试将代码放在 ~/.m2 的 settings.xml 中,但即使 pom 文件中有 -SNAPSHOT 条目(在项目的各个级别),它也不会出错。我想知道我是否必须将代码放在每个 pom 中。 我还没有看到 settings.xml 文件中配置的插件。请参阅链接 - maven.40175.n5.nabble.com/…。【参考方案2】:

你必须像这样在通常的地方配置maven-enforcer-plugin:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireSameVersions>
                  <plugins>
                    <plugin>org.apache.maven.plugins:maven-surefire-plugin</plugin>
                    <plugin>org.apache.maven.plugins:maven-failsafe-plugin</plugin>
                    <plugin>org.apache.maven.plugins:maven-surefire-report-plugin</plugin>
                  </plugins>
                </requireSameVersions>
                <requireMavenVersion>
                  <version>$maven.version</version>
                </requireMavenVersion>
              </rules>    
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

【讨论】:

谢谢。但是,我的问题是把上面的代码放在哪里。在 settings.xml 或 pom.xml 中(根、父、模块 pom)? 其他说明,如果我将上面的代码放在 ~/.m2 或 $M2_HOME/conf/settings.xml 的 settings.xml 中,它会将 maven-enforcer-plugin 的效果级联到任何项目/子项目(模块/子项目)?谢谢。 如果您阅读了我的答案并查看了我给定的链接,您应该知道答案是什么。把它放在绒球里。 settings.xml 不可能是因为不可能在设置中或在 settings.xml 中的配置文件中有构建部分

以上是关于maven-enforcer-plugin - 在 Maven 中配置的位置的主要内容,如果未能解决你的问题,请参考以下文章

maven 插件

如何快速找到冲突jar包

什么是 scala.enable 文件?

如何使用 Maven Enforcer 插件?

Maven 强制插件缺少或无效规则

使用 maven 插件执行器规则失败