Maven 指定默认 JDK 版本

当系统中装有多个 JDK 版本时,如果控制 Maven 能够指定到正确的版本

更多精彩

出现的问题

  1. 在使用 mvn clean package -Dmaven.test.skip=true 对项目进行打包时
  2. 发现进度一直卡在编译无法继续执行
  3. 待编译项目 pom.xml 中指定的 JDK 版本是 1.8
  4. 通过 mvn -version 发现 Maven 获取的 JDK 版本是 11
  5. 这就是导致 Maven 无法顺利编译项目的根本原因

查看当前 Maven 版本

  1. 下图中可以看到,Maven 当前指定的是 JDK 11
    image

查看当前 JDK 版本

  1. 下图中可以看到,当前 JDK 版本是 1.8 ,很明显和上图 Maven 获取到的版本不一致
    image

查看当前系统配置的所有 JDK 版本

  1. 下图中可以看到,当前系统配置了三个版本的 JDK ,而系统默认的是 JDK 11 ,与 Maven 获取到的一致
    image

查看通过 JENV 管理的 JDK 版本

  1. 下图中可以看到,通过 JENV 切换到的 JDK 版本是 1.8 ,与 java -version 获取到的一致
  2. 这就说明 JENV 虽然可以管理当前 JDK 版本,但是无法切换当前系统的默认 JDK
    image

终极解决方案

  1. 在终端输入以下脚本,强制指定 JAVA_HOME 的默认版本是 1.8
    • 这样虽然无法改变当前系统的默认 JDK 版本
    • 但是可以控制其他软件获取到的 JDK 版本,这就已经满足需求了
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.8)" >> ~/.bash_profile
source ~/.bash_profile

再次查看当前 Maven 版本

  1. 下图中可以看到,Maven 当前指定的 JDK 已经替换成了 1.8
    image

再次查看当前系统配置的所有 JDK 版本

  1. 下图中可以看到,当前系统默认的 JDK 版本依旧是 11
    image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值