java:在Jenkins管道中运行Ant时未找到

java:在Jenkins管道中运行Ant时未找到,java,jenkins,ant,jenkins-pipeline,Java,Jenkins,Ant,Jenkins Pipeline,我在通过Jenkins管道运行ant时遇到问题。我在运行JenkinsFile时遇到以下错误 Started by user xxxxxx Running in Durability level: MAX_SURVIVABILITY [Pipeline] node Running on Jenkins in /var/jenkins_home/workspace/xxxxxx_workspace [Pipeline] { [Pipeline] stage [Pipeline] { (Test)

我在通过Jenkins管道运行ant时遇到问题。我在运行JenkinsFile时遇到以下错误

Started by user xxxxxx
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/xxxxxx_workspace
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] tool
[Pipeline] tool
[Pipeline] sh
[xxxxxx_workspace] Running shell script
+ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (IcedTea 3.6.0) (Alpine 8.151.12-r0)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
[Pipeline] withAnt
[Pipeline] {
[Pipeline] sh
[xxxxxx_workspace] Running shell script
+ ant -d -version
/var/jenkins_home/tools/hudson.tasks.Ant_AntInstallation/ant_1_10_5/bin/ant: exec: line 1: /var/jenkins_home/tools/hudson.model.JDK/jdk_8u181/jre/bin/java: not found
[Pipeline] }
[Pipeline] // withAnt
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 127
Finished: FAILURE
我的文件如下:

node {
  stage('Test') {
    env.JAVA_HOME="${tool 'jdk_8u181'}"
    env.ANT_HOME="${tool 'ant_1_10_5'}"
    env.PATH = "${env.JAVA_HOME}/bin:${env.ANT_HOME}/bin:${env.PATH}"
    sh "java -version"
    withAnt(installation: 'ant_1_10_5', jdk: 'jdk_8u181') {
    //  echo "Test ant"
      sh "ant -d -version"
    }
  }
}
我在Jenkins全局工具配置中设置了Java和Ant

JDK设置屏幕截图

蚂蚁设置屏幕截图

JDK和Ant的文件路径,可以确认是否有可用的文件路径。注意:我使用的是docker,所以/var/jenkins_home被装载到/opt/jenkins,但是您可以看到“sh”java-version在控制台输出中仍然有效

[root@jenkins jre]# ls -al /opt/jenkins/tools/hudson.model.JDK/jdk_8u181/jre/bin/java
-rwxr-xr-x 1 centos centos 7734 Jul  7 16:06 /opt/jenkins/tools/hudson.model.JDK/jdk_8u181/jre/bin/java
[root@jenkins jre]# ls -al /opt/jenkins/tools/hudson.tasks.Ant_AntInstallation/ant_1_10_5/bin/ant
-rwxr-xr-x 1 centos centos 11638 Jul 19 10:54 /opt/jenkins/tools/hudson.tasks.Ant_AntInstallation/ant_1_10_5/bin/ant
[root@jenkins jre]#
通知

但是


当您运行
java-version
时,您将获得路径中的任何内容。在实际编译中,您试图以不同的特定路径执行java。根据错误消息,路径很可能不存在。

谢谢您的评论。我仍在调查,我相信1.8.0_151来自Jenkins容器中的java。
[xxxxxx_workspace] Running shell script
+ java -version
openjdk version "1.8.0_151"
                       ^^^
line 1: /var/jenkins_home/tools/hudson.model.JDK/jdk_8u181/jre/bin/java: not found
                                                       ^^^