Java 如何在Jenkins中为每个从节点配置Maven安装? 症状
如果我在Jenkins(New Item=>Maven project,使用Maven插件)中创建一个带有所有默认值的Maven作业并运行它,我会得到以下错误:Java 如何在Jenkins中为每个从节点配置Maven安装? 症状,java,maven,jenkins,Java,Maven,Jenkins,如果我在Jenkins(New Item=>Maven project,使用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
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安装(通过在Maven_HOME
中提供预安装路径作为/usr/share/Maven
),作业将成功运行
问:为什么是全局配置而不是特定于从属配置?
全局Jenkins配置没有意义:Maven是按从机运行的,而不是按Jenkins运行的
Jenkins运行作业的奴隶动物园可能包含具有各种平台、操作系统和环境的奴隶,其中不同版本的Maven安装在不同的位置
问题:如何配置每个从属节点的Maven安装?
将环境变量设置为从属节点上整个系统的相同路径无效
版本
Jenkins Master和Slave都是Linux主机。Jenkins版本:
1.598
如果不将Maven添加到主配置中,只需在每个从机上安装Maven,并使用它们自己可能不同的环境变量(例如版本3.2.5)
然后,每个Jenkins从机将只使用带有本地设置的Maven。假设您的从机上安装了Java和Maven:
它现在应该可以工作了(即使您已经在主机上配置了Maven安装)。对于我来说,解决方案是转到manageJenkins->Global Tool Configuration,然后在那里设置Maven。您可以通过/configureTools(例如:)访问此文件 例如: Maven安装
- 姓名:my_maven_3.3.9
- MAVEN\u HOME:/usr/share/MAVEN
- 名称:my_git_2.11.0
- Git可执行文件路径:/usr/bin/Git
- 名称:my_jdk_1.8.0_161
- JAVA_HOME:/opt/jdk/jdk1.8.0_161
docker push chiraggupta95/jenkinswithmvn:v1
如果你想自定义自己的图像,只需查看MyGitRepo以获得完整的说明
https://github.com/chiraggupta95apr/jenkins
快乐编码:)如果我不将Maven添加到主程序中,我仍然可以在Jenkins中创建Maven作业(New Item=>Maven项目)?这是一种特殊类型的作业,具有支持maven参数的UI。不,您必须创建一个自由式作业并调用maven Targets幸运的是,Jenkins作业的“maven项目”类型就是这个问题的原因。我已经使用过“自由式”工作,并决定为那些需要它们的人提供熟悉的UI功能(包括Jenkins对Maven Release插件的UI支持)。我会投票给需要它的人,但不会接受。每个Jenkins从机的Shell环境都可以包含运行任何可能脚本的所有先决条件。问题是,如果我们仍然必须在外部配置Maven,为什么Jenkins会有违反直觉的每主Maven配置,而不是每(可能不同的)从Maven配置。找不到节点属性
https://github.com/chiraggupta95apr/jenkins