在这里插入图片描述
在确保虚拟机中的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 <link> <name> <path> <priority>

其中,
install表示安装
link是符号链接
name则是标识符
path是执行文件的路径
priority则表示优先级

  1. 首先查看默认的java 命令链接路径
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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐