Maven打包错误信息

通过Maven进行Nacos项目打包,命令出现如下异常信息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project nacos-api: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] 
[ERROR] -> [Help 1]

通过IDEA编译是没问题的,但为什么通过mvn命令则会出现上述问题呢?最主要的原因是本地JDK配置出了问题。

Mac配置JDK环境

本人操作系统为Mac,因此以此为例,Windows操作系统类似,都是进行环境变量的检查、排查和配置。

首先执行mvn -v来检查一下maven版本和JDK版本:

appledeMacBook-Pro-2:nacos apple$ mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /Users/apple/tools/apache-maven-3.5.2
Java version: 1.8.0_271, vendor: Oracle Corporation
Java home: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

这是出问题时的配置,会发现Java home的路径并不是正确,是一个插件中的Home。

查看默认JDK地址

在Mac下执行以下命令来找到JDK的安装路径:

appledeMacBook-Pro-2:nacos apple$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.271.09 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_271 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

可以看到,我这里出现了两个路径。如果你是Windows操作系统,直接找对应的JDK目录即可。

这里正确的路径应该是:

/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home

先将其进行保存。

配置环境变量

如果你是第一次配置环境变量,可以使用”touch ~/.bash_profile” 创建一个 .bash_profile 的隐藏配置文件(如果已经有存在的配置文件,则使用”open -e ~/.bash_profile” 命令或”vi ~/.bash_profile”)。

然后将,JDK的环境变量进行配置:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

上述配置了JAVA_HOME、PATH、CLASSPATH。配置完成,进行保存。然后再执行编译命令:

source ~/.bash_profile

此时,再执行mvn命令,就可以正常运行了。

其他IDE

如果你使用的是Eclipse或Spring的IDE工具,可在IDE中寻找对应的配置,将JDK选择本地合适的版本。

Maven打包No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?插图
JDK配置
Maven打包No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?插图1
JDK配置



Maven打包No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?插图2

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2021/05/20/maven-jdk-config/