java - 由于 @tmp dir 导致 Jenkins 管道 DSL Maven 错误

标签 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/<project>@tmp/durable-77d8d13c/script.sh: mvn: not found

看起来它试图找到pom.xml里面<project>@tmp目录是空的。实际代码已成功克隆到 <project> 内目录。下面是我的Jenkinsfile :

node {
stage ("Clean Workspace") {
    echo "${WORKSPACE}"
    cleanWs()
}
stage ("Get Code") {
    git branch: "${params.branch}", url: 'git@bitbucket.org:xx/xxxxxxx.git'
}
stage ("mvn clean") {
    sh "mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true"
}
}

我也尝试过 ${WORKSPACE} env 变量但仍然不起作用。

最佳答案

问题已解决,我通过包含 Maven 工具步骤修改了 Pipeline DSL 作业:

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

关于java - 由于 @tmp dir 导致 Jenkins 管道 DSL Maven 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49385149/

相关文章:

java - Apache Wicket - DropDownChoice 实时搜索

maven - 与 Maven 的 IncompatibleClassChangeError - Jersey - Tomcat

java - Jenkins plugin——引用项目插件设置中的全局插件设置

java - 如何使用 IText 将段落添加到矩形中

java - IBM WebSphere MQ 覆盖 TextMessage 属性

java - 使用java将xls中的字符串转换为日期格式

android - 使用 android maven 插件重命名包

java - 如何使用 VSCODE 将 YML 文件添加到我的项目中?

android - 如何使用命令行构建 Kony iOS 项目

docker - 如何在 Jenkins 中将外部 URL 显示为构建结果