我在运行简单的Java Maven管道时遇到问题。由于未知原因,使用的maven命令无法使用预期的JDK失败。
Jenkins文件内容:
pipeline {
agent any
tools {
jdk 'java9'
maven 'Maven3.5'
}
stages {
stage ('Initialize') {
steps {
sh '''
echo "PATH = ${PATH}"
echo "M2_HOME = ${M2_HOME}"
echo "JAVA_HOME = ${JAVA_HOME}"
'''
}
}
stage ('Build') {
steps {
sh 'java -version'
sh 'mvn --version'
}
}
}
}
“初始化”阶段脚本的输出
PATH = /var/jenkins_home/tools/hudson.model.JDK/java9/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven3.5/bin:/var/jenkins_home/tools/hudson.model.JDK/java9/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven3.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
M2_HOME = /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven3.5
JAVA_HOME = /var/jenkins_home/tools/hudson.model.JDK/java9
这对我来说看起来很有效。 M2_HOME和JAVA_HOME指向Jenkins工具的预期路径。
“构建”“ java -version”脚本的输出
+ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (IcedTea 3.10.0) (Alpine 8.191.12-r0)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
这似乎是Jenkins docker主机系统的已安装Java
“ Build”“ mvn -version”脚本的失败输出:
mvn --version
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven3.5/bin/mvn: exec: line 191: /var/jenkins_home/tools/hudson.model.JDK/java9/bin/java: not found
script returned exit code 127
如果我猛扑到Jenkins docker容器中,则会在上述路径中找到java bin。
我的错误在哪里? Maven为什么找不到Java?
这是权限问题吗? Jenkins docker容器使用docker卷:
-v jenkins-data:/var/jenkins_home
。
最好, 拉斯
答案 0 :(得分:0)
不确定Jenkins Pipeline中的工具+ docker是否运行良好。
请参阅:https://issues.jenkins-ci.org/browse/JENKINS-36159
到目前为止,只有设法将docker节点的tools目录安装到docker slave中,我才能设法使它生效。
例如
agent {码头工人 args'-v $ HOME / tools:/ var / lib / jenkins / tools'
阶段{步骤{ sh“ $ {MAVEN_HOME} / bin / mvn -version”