maven编译开源项目报enforce错解决

本文介绍了使用Maven编译开源项目源码时遇到的enforce插件检测规则失败问题及解决方案。通过调整pom.xml文件中对Java和Maven版本的约束,成功解决了编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚下载一个开源项目源码,用maven编译发现报错:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-versions) on project spark-parent_2.11: Some Enforcer rules
 have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

根据报错提示信息得出是enforce插件检测规则失败,并且这里提供了一个官方解决连接,进入看看MojoExecutionException解释:

150258_PPCo_1445156.png

说明这个不是maven本身报错,而是它的插件报错了,并且告诉我们要去看一下插件的文档,提供了maven插件文档的链接,进入plugin index找到enforce插件,先看看这个插件是干什么的:

150709_I127_1445156.png

150955_jhlZ_1445156.png

这里的对enforcer的解释是,这是做环境约束检查用,到pom.xml中找到对应的enforce插件:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-enforcer-plugin</artifactId>
  <version>1.4.1</version>
  <executions>
    <execution>
      <id>enforce-versions</id>
      <goals>
        <goal>enforce</goal>
      </goals>
      <configuration>
        <rules>
          <requireMavenVersion>
            <version>${maven.version}</version>
          </requireMavenVersion>
          <requireJavaVersion>
            <version>${java.version}</version>
          </requireJavaVersion>
          <bannedDependencies>
            <excludes>
              <!--
                Akka depends on io.netty:netty, which puts classes under the org.jboss.netty
                package. This conflicts with the classes in org.jboss.netty:netty
                artifact, so we have to ban that artifact here. In Netty 4.x, the classes
                are under the io.netty package, so it's fine for us to depend on both
                io.netty:netty and io.netty:netty-all.
              -->
              <exclude>org.jboss.netty</exclude>
              <exclude>org.codehaus.groovy</exclude>
            </excludes>
            <searchTransitive>true</searchTransitive>
          </bannedDependencies>
        </rules>
      </configuration>
    </execution>
  </executions>
</plugin>

这里对java.version和maven.version做了约束,把配置改成本地对应的版本号即可。

 

参考:

https://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

http://maven.apache.org/plugins/

转载于:https://my.oschina.net/chengxiaoyuan/blog/822994

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值