Maven打包No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
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选择本地合适的版本。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接