我在运行一个简单的Java管道时遇到问题。所使用的maven命令因未知原因使用预期的JDK失败。
Jenkinsfile内容:
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工具的预期路径。
"Build“"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坞主机系统的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码头容器中,就会在前面提到的路径上找到java bin。
我的错误在哪里?为什么Maven找不到Java?
这是许可问题吗?Jenkins容器使用一个停靠卷:-v jenkins-data:/var/jenkins_home。
最好的,拉尔斯
发布于 2019-11-08 14:51:41
不确定詹金斯管道的工具+码头工作得这么好。
请参阅:https://issues.jenkins-ci.org/browse/JENKINS-36159
到目前为止,我成功地使其工作的唯一方法是将docker节点的tools目录挂载到docker从目录中。
例如:
代理{ docker args '-v $HOME/tools:/var/lib/jenkins/tools‘
步骤{ sh "${MAVEN_HOME}/bin/mvn -version“
编辑:也找到了这个:https://issues.jenkins-ci.org/browse/JENKINS-48050
发布于 2021-09-17 12:36:42
你不需要这两个工具。用Maven工具就够了。它包括Java。你的管道应该是:
pipeline {
agent any
tools {
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'
}
}
}
}您可以在Jenkins配置工具中删除Java工具。
https://stackoverflow.com/questions/54843799
复制相似问题