
 在确保虚拟机中的maven已经安装且可以正常执行mvn install 的情况下,Jenkins构建时执行maven编译仍然提示
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
首先请确保你的虚拟机上安装了JDK以及Maven,并且配置了正确的环境变量
$  javac
 

$  mvn -v
 

 如果可以将项目clone到虚拟机上也可以试试
$   git clone xxx.git$  mvn -U clean install -DskipTests
 

 当你确认了如上的步骤都正常,那么基本可以确定不是你虚拟机本身环境的问题,而是jenkins 运行时的环境选择错了,它可能使用了默认虚拟机自带的jdk了
怎样确认Jenkins运行的JDK是不是你自己安装的呢,我们借助alternatives命令
说明:
alternatives --install
其中,
 install表示安装
 link是符号链接
 name则是标识符
 path是执行文件的路径
 priority则表示优先级
alternatives --config java
 

 其中有+号标识的表示当前使用的java程序路径
 因为我刚刚设置过,所以最后边的是我自己设置的,如果不出意外,你的界面应该只展示第一个,看路径就知道那不是你自己安装的JDK路径,那么通过如下命令设置
 2. alternatives --install /usr/bin/java java /usr/local/jdk/bin/java 2
 /usr/bin/java 不用改
 java 不用改
 /usr/local/jdk/bin/java 是你自己安装的JDK路径,注意是你环境变量JAVA_HOME + /bin/java 拼接而成,而不是单纯的JAVA_HOME
 3. 选择你设置的JDK
alternatives --config java
 
命令输入后,输入序号选择后回车设置完毕
 4. 重启Jenkins 再次构建时就会成功了
 
本文结束
参考文章: Jenkins Maven compile failure: No compiler is provided in this environment