无法在Jenkins管道作业中读取gradle.properties

dgjrabp2  于 11个月前  发布在  Jenkins
关注(0)|答案(2)|浏览(156)

我正在使用gradle运行jenkins管道作业。我需要获得gradle.properties中提到的属性值,我如何才能获得它

anhgbhbe

anhgbhbe1#

使用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.


阅读更多关于这个主题在这里:脚本批准.
一旦获得批准,该属性可以读取:

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

cotxawn7

cotxawn72#

无需额外许可的更好解决方案很简单
readProperties - Pipeline Utility Steps

script {
  def props = readProperties  file:'rest-api/gradle.properties'
  env.APP_VERSION = props['version']
}

字符串

相关问题