如果我使用所有默认值在Jenkins( New Item => Maven项目)中创建Maven作业并运行它,我会收到此错误:
Started by user anonymous
Building on master in workspace /var/lib/jenkins/jobs/job_name/workspace
ERROR: A Maven installation needs to be available for this project to be built.Either your server has no Maven installations defined, or the requested Maven version does not exist.
Finished: FAILURE
Maven完全从命令行运行,只有mvn
。
Maven安装有一个系统范围的Jenkins配置: Manage Jenkins => 配置系统 => Maven / Maven安装。如果我使用此Web UI添加Maven安装(通过MAVEN_HOME
中预先安装的路径/usr/share/maven
),则作业运行成功。
全局Jenkins配置没有意义:Maven是按Slave运行的,而不是每个Jenkins运行。
Jenkins运行作业的Slaves动物园可能包含各种平台的奴隶,操作系统,不同版本的Maven安装在不同位置的环境。
将MAVEN_HOME
and M2_HOME
等环境变量设置为Slave节点上整个系统的相同路径不起作用。
Jenkins Master和Slave都是Linux主机。詹金斯版本:1.598
答案 0 :(得分:12)
假设你的奴隶安装了Java和Maven:
它现在应该可以工作(即使您已在主服务器上配置了Maven安装)。
答案 1 :(得分:3)
对我来说,解决方案是去管理Jenkins - >全局工具配置,并在那里设置maven。您可以通过/ configureTools(例如:http://your-ip:8080/jenkins/configureTools)
访问它实施例: Maven装置
/ configureTools中其他常用工具的其他配置:
Git装置
JDK安装
答案 2 :(得分:1)
如果你没有将Maven添加到主配置中,你只需将它安装在每个具有自己可能不同的环境变量的slave上(例如版本3.2.5)
M2_HOME=C:\apache-maven-3.2.5
M2=C:\apache-maven-3.2.5\bin
Path+=;C:\apache-maven-3.2.5\bin
然后每个Jenkins奴隶都会使用Maven和本地设置。
答案 3 :(得分:-1)
为简单起见,只需使用我的公共docker映像
docker push chiraggupta95/jenkinswithmvn:v1
如果您想自定义图像,只需查看我的git repo以获取完整说明。
https://github.com/chiraggupta95apr/jenkins
快乐编码:)