如何在每个Slave节点的Jenkins中配置Maven安装?

时间:2015-02-07 20:43:06

标签: java maven jenkins

症状

如果我使用所有默认值在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配置而不是Slave特定的?

全局Jenkins配置没有意义:Maven是按Slave运行的,而不是每个Jenkins运行。

Jenkins运行作业的Slaves动物园可能包含各种平台的奴隶,操作系统,不同版本的Maven安装在不同位置的环境。

问题:如何为每个Slave节点配置Maven安装?

MAVEN_HOME and M2_HOME等环境变量设置为Slave节点上整个系统的相同路径不起作用。

版本

Jenkins Master和Slave都是Linux主机。詹金斯版本:1.598

4 个答案:

答案 0 :(得分:12)

假设你的奴隶安装了Java和Maven:

  1. 转到管理Jenkins - >管理节点
  2. 单击要配置的节点上的配置图标
  3. 向下滚动到“节点属性”'并勾选“工具位置”'复选框
  4. 填写Java和Maven的选项。
  5. 它现在应该可以工作(即使您已在主服务器上配置了Maven安装)。

答案 1 :(得分:3)

对我来说,解决方案是去管理Jenkins - >全局工具配置,并在那里设置maven。您可以通过/ configureTools(例如:http://your-ip:8080/jenkins/configureTools

访问它

实施例: Maven装置

  • 姓名:my_maven_3.3.9
  • MAVEN_HOME:/ usr / share / maven

/ configureTools中其他常用工具的其他配置:

Git装置

  • 姓名:my_git_2.11.0
  • Git可执行文件的路径:/ usr / bin / git

JDK安装

  • 姓名:my_jdk_1.8.0_161
  • JAVA_HOME:/opt/jdk/jdk1.8.0_161

答案 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

快乐编码:)