Java 由于@tmp dir,Jenkins管道DSL Maven错误

Java 由于@tmp dir,Jenkins管道DSL Maven错误,java,maven,jenkins,jenkins-pipeline,Java,Maven,Jenkins,Jenkins Pipeline,我刚刚创建了一个Jenkins Pipeline DSL作业,在这里我从SCM克隆了一个Java代码,并尝试运行mvn clean。但管道不断抛出一个错误,说: mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true /var/lib/jenkins/workspace/<project>@tmp/durable-77d8d13c/script.sh: 2: /var/lib/jenkins/workspace/&

我刚刚创建了一个Jenkins Pipeline DSL作业,在这里我从SCM克隆了一个Java代码,并尝试运行
mvn clean
。但管道不断抛出一个错误,说:

mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true
/var/lib/jenkins/workspace/<project>@tmp/durable-77d8d13c/script.sh: 2: 
/var/lib/jenkins/workspace/<project>@tmp/durable-77d8d13c/script.sh: mvn: not found

我还尝试了
${WORKSPACE}
env变量,但仍然不起作用。

问题已经解决,我通过包括Maven工具步骤修改了管道DSL作业,如下所示:

stage ("mvn clean") {
    withEnv( ["PATH+MAVEN=${tool name: 'mvn', type: 'maven'}/bin"] ) {
      sh "mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true"
    }
}

问题解决了,我修改了管道DSL作业,包括Maven工具步骤,如下所示:

stage ("mvn clean") {
    withEnv( ["PATH+MAVEN=${tool name: 'mvn', type: 'maven'}/bin"] ) {
      sh "mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true"
    }
}

您可以直接将
mvn
添加到路径本身,而不是这样做。为此,请打开~/.bash_配置文件并添加以下行

MAVEN_HOME="<path to maven folder>"
export MAVEN_HOME
PATH=$PATH:$MAVEN_HOME/bin

您可以直接将
mvn
添加到路径本身,而不是这样做。为此,请打开~/.bash_配置文件并添加以下行

MAVEN_HOME="<path to maven folder>"
export MAVEN_HOME
PATH=$PATH:$MAVEN_HOME/bin

错误消息
mvn:notfound
表示Jenkins管道无法找到mvn命令

您应该使用
with maven
管道步骤来提供有效的maven环境

例如:

node {
    stage ("Clean Workspace") {
        echo "${WORKSPACE}"
        cleanWs()
    }
    stage ("Get Code") {
        git branch: "${params.branch}", url: 'git@bitbucket.org:xx/xxxxxxx.git'
    }
    stage ("mvn clean") {
        withMaven {
           sh "mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true"
        }
    }
}
检查Jenkins是否正确配置为使用maven(在“管理Jenkins>配置系统”下),以及是否安装了“管道maven插件”(在“管理Jenkins>管理插件”下)


此处的更多信息:

错误消息
mvn:notfound
表示Jenkins管道无法找到mvn命令

您应该使用
with maven
管道步骤来提供有效的maven环境

例如:

node {
    stage ("Clean Workspace") {
        echo "${WORKSPACE}"
        cleanWs()
    }
    stage ("Get Code") {
        git branch: "${params.branch}", url: 'git@bitbucket.org:xx/xxxxxxx.git'
    }
    stage ("mvn clean") {
        withMaven {
           sh "mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true"
        }
    }
}
检查Jenkins是否正确配置为使用maven(在“管理Jenkins>配置系统”下),以及是否安装了“管道maven插件”(在“管理Jenkins>管理插件”下)


此处的更多信息:

您应该使用
with maven()…{…}
Jenkins中的管道部分…是什么让你相信
mvn
安装在你正在执行的代理上?@mkobit我通过
mvn-version
命令检查了
Jenkins
用户。@JanshairKhan是在
主机上还是在你正在运行脚本的代理上?很难回答,因为stacktrace似乎表明运行构建的位置缺少
mvn
。@mkobit。我当前在一个主节点上。您应该使用
withMaven()…{…}
Jenkins中的管道部分…是什么让你相信
mvn
安装在你正在执行的代理上?@mkobit我通过
mvn-version
命令检查了
Jenkins
用户。@JanshairKhan是在
主机上还是在你正在运行脚本的代理上?很难回答,因为stacktrace似乎表明运行构建的位置缺少
mvn
。@mkobit。我目前在一个主节点上。