我如何告诉Jenkins使用系统安装的Maven?
为什么要问MAVEN_HOME而不是M2_HOME?为什么不显示当前系统Maven?构建运行时,它会显示BS错误:
解析POM 错误:无法解析POM org.apache.maven.project.ProjectBuildingException:处理POM时遇到一些问题: [FATAL]不可解析的父POM:无法在http://repo.maven.apache.org/maven2中找到org.springframework.boot:spring-boot-starter-parent:pom:[1.5.13,2.0)缓存在本地存储库中,解析将在中心的更新间隔过去或强制进行更新并且在第14行第10列第10行上没有本地POM的情况下强制执行“ parent.relativePath”点之前,无法重新尝试
当我以jenkins
用户身份登录计算机并在命令行上运行mvn compile
时,此方法有效。
-bash-4.2$ env | grep -i maven
PATH=/usr/local/src/apache-maven-3.6.0/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
M2_HOME=/usr/local/src/apache-maven-3.6.0
-bash-4.2$ mvn compile
...
[INFO] BUILD SUCCESS
这是作业配置页面中的屏幕截图。 /job/Weekly%20Report/configure
答案 0 :(得分:0)
首先,您需要了解Jenkins工具和jenkins
用户是两个不同的概念。
默认情况下,Jenkins工具不了解您当前的系统工具(例如Maven)。这就是为什么如果您需要使用系统Maven,则需要在 Manage Jenkins-> Global Tool Configuration 页面中添加Maven配置,然后取消选中Install automatically
复选框并输入Name
和{ {1}}:
这将使Jenkins知道您的系统Maven工具的路径(正如Evgeni Enchev在评论中已经说过的那样,之后Jenkins将会知道MAVEN_HOME
在哪里)。
然后,在您的作业中,您还需要选择正确的Maven版本(使用先前配置的名称):
然后您将能够运行您的系统Maven。
注意:有关在Jenkins管道中使用Maven的信息,请参见Pipeline Maven Plugin。