无法在詹金斯管道作业中读取 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'
我是 运行 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'