在 Jenkins 管道上找不到 MVN 命令



我对 Jenkins 和 maven 项目真的很陌生,即使使用一个简单的示例项目,我也开始发疯 https://github.com/jglick/simple-maven-project-with-tests.git

还使用 Jenkins 的管道示例脚本 GitHub + Maven

stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"

但是我收到下一个错误:

+ mvn -version
/var/lib/jenkins/workspace/app-maven@tmp/durable-dba02bb4/script.sh: line 1: mvn: command not found

我找到一篇文章说使用此方法将 mvn 路径保存在变量上并使用它:

steps {
// Get some code from a GitHub repository
git 'https://github.com/alvarosjf/maven-app.git'
// Run Maven on a Unix agent.
def mvnHome = tool name: '3.6.3', type: 'maven'
sh "${mvnHome}/bin/mvn -version"
//sh 'mvn -version'

但这在启动时显示错误的情况甚至更糟

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Not a valid stage section definition: "def mvnHome = tool name: '3.6.3', type: 'maven'". Some extra configuration is required. @ line 5, column 7.
stage('Build') {
^
1 error

有什么技巧可以尝试使用带有 Github webhooks + maven 的简单 jenkins 管道吗?

你的管道代码似乎是正确的,但你需要在 Jenkins 本身中配置使用的工具(在你的脚本中,在 3.6.3 版中是 maven(。

这可以通过以下方式完成:

"管理 Jenkins -> 配置工具",在 maven 部分中,添加一个新实例(选择您想要的任何名称,在管道脚本中也使用此名称tool name: 'your-name' type: 'maven'(其余部分保持不变,这将通过从 Apache 服务器下载自动安装 Maven

最新更新