症状
如果我在Jenkins中创建一个Maven作业(新项目 => 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
使用mvn
命令可以在命令行中完美运行Maven。
不可接受的解决方法
有一个系统级别的Jenkins配置用于安装Maven:管理Jenkins => 配置系统 => Maven / Maven安装。如果我使用此Web UI添加Maven安装(通过在MAVEN_HOME
中提供预安装路径/usr/share/maven
),作业将会成功运行。
问题:为什么是全局Jenkins配置而不是特定于Slave的配置?
全局Jenkins配置没有意义:Maven是按Slave而非按Jenkins运行的。
Jenkins运行作业的Slave群组可能包含具有不同平台、操作系统和环境的Slave,这些不同版本的Maven安装在不同位置。
问题:如何针对每个Slave节点配置Maven安装?
在Slave节点上为整个系统设置类似于MAVEN_HOME
和M2_HOME
的环境变量到相同路径并不能起作用。
版本
Jenkins Master和Slave均为Linux主机。Jenkins版本:1.598