首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven执行器插件缺失或无效规则

Maven执行器插件缺失或无效规则
EN

Stack Overflow用户
提问于 2014-07-18 14:17:54
回答 3查看 30.3K关注 0票数 26

我正在尝试为maven设置执行插件,以强制执行最低的Java版本。但是,每当我尝试运行mvn enforcer:enforce时,我都会得到:

目标org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce的参数“规则”丢失或无效

以下是我的pom文件的相关部分:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.3.1</version>
    <executions>
        <execution>
            <id>enforce-java</id>
            <phase>validate</phase>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <requireJavaVersion>
                        <version>(1.7.0-20,)</version>
                    </requireJavaVersion>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

我还尝试将<requireJavaVersion>块替换为<alwaysPass/>,以防某些东西无效,但仍然发生了相同的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-18 14:37:24

可能是您使用的是无效的规则名。查看规则页面。规则名区分大小写。虽然这里不是这样的。

-编辑

注意,POM配置的执行ID为enforce-java,并且执行绑定到生命周期的validate阶段。命令mvn enforcer:enforce正在运行一个目标,而不是生命周期中的一个阶段。您在POM中提供的配置不适用于enforcer:enforce目标。

有两种方法可以让这件事成功。你选择哪一个取决于你需要什么。

  1. 如果您只是尝试测试执行插件配置而不运行整个构建,请运行mvn validate
  2. 如果要求mvn enforcer:enforce工作,那么将执行ID更改为default-cli
票数 38
EN

Stack Overflow用户

发布于 2020-03-17 13:06:06

在构建vertx车间项目时,我遇到了同样的错误。事实证明,这个错误主要是一个与执行插件版本有关的问题。下面的配置为我解决了这个问题。

代码语言:javascript
复制
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-enforcer-plugin</artifactId>
  <version>3.0.0-M3</version><!--$NO-MVN-MAN-VER$-->
  <executions>
    <execution>
      <id>enforce-java</id>
      <phase>enforce</phase>
      <goals>
        <goal>enforce</goal>
      </goals>
      <configuration>
        <rules>
          <requireJavaVersion>
            <version>(1.8.0,)</version>
          </requireJavaVersion>
        </rules>
      </configuration>
    </execution>
  </executions>
</plugin>
票数 0
EN

Stack Overflow用户

发布于 2020-08-06 14:48:24

在我的例子中,问题在于我将强制执行程序配置放在Maven配置文件的构建部分中,这部分在我运行mvn validate时没有构建。一个简单的mvn validate -P correctProfile为我修复了它。最后,我将其放入多模块应用程序的父项目中,将字节码强制执行规则的传递搜索设置为true:<searchTransitive>true</searchTransitive>,并验证了子项目中不正确的依赖确实会导致构建失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24827194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档