Error parsing .mvn/maven.config file: Unrecognized option: --no-transfer-progress

编译MyBatis源码时遇到的一系列问题

编译mybatis源码时,报错。

21:33	Error parsing .mvn/maven.config file: Unrecognized option: --no-transfer-progress 
			Fix maven config

maven.config 文件中内容都是红线

-Daether.checksums.algorithms=SHA-512,SHA-256,SHA-1,MD5
--no-transfer-progress

在这里插入图片描述
我当前使用的还是maven3.5.3

--no-transfer-progress

在构建过程中,不显示下载和上传的进度。这个参数在 Maven 3.6.1 才添加。

于是去maven官网下载来一个新的3.9.0。(https://maven.apache.org/download.cgi)
然后IDEA的 File >Settings >Build,Execution,Deployment >Build Tools >Maven
下更换maven home path。
在这里插入图片描述
环境变量中的maven path也要指向新版本。
先新建系统变量,
在这里插入图片描述

然后再环境变量path中,添加maven。
在这里插入图片描述
在这里插入图片描述
如果配置有误,可能IDEA中会出现下面的问题。
在这里插入图片描述
按照上述截图操作后:
在这里插入图片描述
接下来使用

mvn install -DskipTests=true -Dmaven.test.skip=true -Dlicense.skip=true

报错如下: Unknown lifecycle phase “.test.skip=true”.
在这里插入图片描述
将命令改为:

mvn clean install package '-DskipTests=true -Dmaven.test.skip=true -Dlicense.skip=true'

在这里插入图片描述
接下来报错如下:
在这里插入图片描述
从pom.xml文件中找到了JDK的限制条件,

<properties>
    <!-- Copyright -->
    <copyright>2022</copyright>

    <!-- General configuration -->
    <allowed.build.jdks>[11,12),[17,18),[19,20),[20,21),[21,22)</allowed.build.jdks>
    <checkstyle.config>checkstyle.xml</checkstyle.config>
    <clirr.comparisonVersion>36</clirr.comparisonVersion>
    <formatter.config>eclipse-formatter-config-2space.xml</formatter.config>
    <gcu.product>${project.name}</gcu.product>
    <html.javadocType>-html5</html.javadocType>
    <impsortGroups>au,ch,com,de,io,jakarta,java,javassist,javax,lombok,mockit,net,nl,ognl,org</impsortGroups>
    <module.name>org.mybatis.parent</module.name>
    <spotbugs.onlyAnalyze />

由于本地安装的是JDK8,所以果断换MyBatis源码版本,找个比较老的版本。

既然已经说到这里了,顺便说一下maven的Maven Enforcer 插件。
它提供了非常多的通用检查规则,比如检查 JDK 版本、检查 Maven 版本、检查依赖版本等,比如在我们MyBatis的源码中就有如下校验:

 <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${enforcer.plugin}</version>
          <configuration>
            <rules>
              <enforceBytecodeVersion>
                <maxJdkVersion>${java.version}</maxJdkVersion>
                <ignoredScopes>test</ignoredScopes>
              </enforceBytecodeVersion>
              <requireJavaVersion>
                <version>${allowed.build.jdks}</version>
              </requireJavaVersion>
              <requireMavenVersion>
                <version>[${maven.min-version},)</version>
              </requireMavenVersion>
              <requirePluginVersions>
                <message>[ERROR] Best Practice is to always define plugin versions!</message>
                <banLatest>true</banLatest>
                <banRelease>true</banRelease>
                <banSnapshots>true</banSnapshots>
                <phases>clean,deploy,site</phases>
              </requirePluginVersions>
            </rules>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>${extra-enforcer-rules.version}</version>
            </dependency>
          </dependencies>
        </plugin>

上述的配置会在构建时(准确的说是在 validate 时)需完成各项检查:
其中JDK版本要求为:[11,12),[17,18),[19,20),[20,21),[21,22),
因为我们是JDK8,所以报错如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce (enforce-java) on project mybatis-parent:
[ERROR] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:
[ERROR] Detected JDK version 1.8.0-351 (JAVA_HOME=C:\Program Files\Java\jdk1.8.0_351\jre) is not in the allowed range [11,12),[17,18),[19,20),[20,21),[21,22).

好把,我们找个3.5.4的版本试试。
https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值