为什么Jenkins pipeline中设置的JAVA_HOME说无效?

问题描述 投票:0回答:1

我在Jenkins管理的Tools部分设置了JDK安装,并将其命名为“jdk17”。 管道写成如下。

pipeline {
    agent any
    tools {
        jdk 'jdk17'
    }
    environment {
        JAVA_HOME = "${tool 'jdk17'}"
    }
    stages {
        stage('git clone') {
            steps {
                git branch: 'backend/taskmaster/deploy', credentialsId: 'HJ', url: 'https://lab.ssafy.com/s10-webmobile2-sub2/S10P12A305.git'
            }
        }
        stage('create bootjar'){
            steps{
                echo "JAVA_HOME=${env.JAVA_HOME}"
                sh '''
                    cd taskmaster
                    chmod +x gradlew
                    ./gradlew clean bootJar
                '''
            }
        }
    }
}

但是在./gradlew执行步骤中出现了如下错误。

ERROR: JAVA_HOME is set to an invalid directory: /var/jenkins_home/tools/hudson.model.JDK/jdk17/abc

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

JAVA_HOME 在安装 jdk17 的文件夹中已建立,但我不知道为什么它说它是无效位置。 我想解决它。

jenkins environment
1个回答
0
投票

我有同样的问题,碰巧遇到这个问题。对我来说,问题是我分配给 JAVA_HOME 的字符串最终有一个尾随换行符。一旦我在字符串上使用 strip() ,问题就消失了。这也可能是您的问题,希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.