无法在詹金斯管道作业中读取 gradle.properties

Not able to read gradle.properties in jenkins pipeline job

我是 运行 jenkins 管道工作 gradle。我需要获取 gradle.properties 中提到的 属性 值,我怎样才能获取它

使用内置的 Jenkins 声明管道 readFile() 从工作区读取文件。

假设您的 gradle.properties 包含

version=1.2.3-SNAPSHOT

要从文件中读取 version 属性,请在 Jenkinsfile 中执行此操作:

pipeline {
    stages {
        stage("read file from workspace") {
            steps {
                checkout scm

                script {
                    String content = readFile("gradle.properties")

                    Properties properties = new Properties()
                    properties.load(new StringReader(content))

                    echo "property 'version' has value '${properties.version}'"
                }
            }
        }
    }
}

由于缺少执行任意代码的权限,这可能会在执行时失败,具体取决于您的 Jenkins 设置。您可能会收到这样的错误:

Scripts not permitted to use method java.util.Properties load java.io.Reader. Administrators can decide whether to approve or reject this signature.

在此处阅读有关此主题的更多信息:Script Approvals

一旦获得批准,属性 可以读入:

[Pipeline] readFile
[Pipeline] echo
20:55:16 property 'version' has value '1.2.3-SNAPSHOT'