maven打包时报No compiler is provided in this environment处理

* 系统:macOS
* 开发工具:Idea
* 问题描述:在idea中执行mvn clean install时报No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?报错,打包失败。
* 问题处理:
1、按照网上的方法检查了idea的java配置,确认配置的是JDK而不是JRE,检查方法可参考(https://blog.csdn.net/tolcf/article/details/50803414),尝试切换idea的JDK配置问题依然存在,又尝试在系统终端执行 mvn clean install 也报同样的错误;

1 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

2、只能再次求助百度,偶然找到一篇文章(https://stackoverflow.com/questions/21099072/eclipse-maven-error-no-compiler-is-provided-in-this-environment)从里面得到一点启发尝试执行 mvn help:system 查看了一下系统的各种变量和属性,发现PATH中居然不包含JAVA_HOME路径,以前明明配置过的

1 PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: 

但奇怪的是此时执行java -version是居然可以正常获取java版本(此处原因不详),尝试执行了source /etc/profile,再次执行mvn clean install打包成功了!顿时一阵欣喜,然后再次在idea中执行时又失败了!!!

3、再次查看了一下环境变量,JAVA_HOME又没了!不过现在知道问题原因就好解决了,查看自己的默认shell echo $SHELL,bash 编辑.bash_profile,zsh编辑.zshrc,在最下面添加
source /etc/profile 编辑保存后不要忘了执行source ~/.zshrc,再次在idea中执行打包命令就成功了!

* 遗留问题:目前看问题本质就是环境变量失效了,但失效原因不清楚,还有配置/etc/profile时居然不是全局生效了,也很奇怪,暂不深究了,以后慢慢研究
* 补充知识:
1、java环境变量配置

1 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/
2 CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3 PATH=$JAVA_HOME/bin:$PATH:
4 export JAVA_HOME
5 export CLASSPATH
6 export PATH
原文地址:https://www.cnblogs.com/barros/p/14049729.html