如何在 Jenkins 中为每个单个从节点配置 Maven 安装?
症状
如果我在 Jenkins 中创建一个 Maven 作业(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 => Configure System => Maven / Maven 安装。如果我使用此 Web UI 添加 Maven 安装(通过在 as 中提供预安装的路径),则作业会成功运行。MAVEN_HOME
/usr/share/maven
问:为什么是全局 Jenkins 配置,而不是 Slave 特定的配置?
全局 Jenkins 配置没有意义:Maven 是按 Slave 运行的,而不是按 Jenkins 运行的。
Jenkins运行作业的奴隶动物园可能包含具有各种平台的奴隶,操作系统,在不同位置安装不同版本的Maven的环境。
问:如何为每个从属节点配置 Maven 安装?
在从属节点上将环境变量(如MAVEN_HOME和M2_HOME
)设置为整个系统的相同路径不起作用。
版本
Jenkins Master 和 Slave 都是 Linux 主机。詹金斯版本:1.598