我在Jenkinsfile(Groovy)上有这样的东西,我想在变量中记录stdout和退出代码,以便稍后使用这些信息.
sh "ls -l"
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做,特别是因为你似乎无法在里面运行任何类型的groovy代码Jenkinsfile?
我有一个使用project.version变量的gradle插件.
但是,当我更改build.gradle文件中的版本时,插件中的版本不会更新.
// my-plugin
void apply(Project project) {
project.tasks.create(name: 'printVersionFromPlugin') {
println project.version
}
}
Run Code Online (Sandbox Code Playgroud)
version '1.0.1' // used to be 1.0.0
task printVersion {
println project.version
}
apply plugin: 'my-plugin'
Run Code Online (Sandbox Code Playgroud)
> gradle printVersion
1.0.1
> gradle printVersionFromPlugin
1.0.0
Run Code Online (Sandbox Code Playgroud) 在我的 Jenkinsfile 中,我想从 Gradle 构建脚本中读取一些元数据,例如group、baseName和version。有了 Maven,我可以做这样的事情:
def pom = readMavenPom file: 'pom.xml'
env.POM_VERSION = pom.version
env.POM_ARTIFACT_ID = pom.artifactId
env.POM_GROUP_ID = pom.groupId
Run Code Online (Sandbox Code Playgroud)
问题是:我怎样才能用 Gradle 做同样的事情,因为我有一个build.gradle看起来像这样的:
ext {
group = 'my.group.com'
baseName = 'myapplication'
version = '0.5.2-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)
也许有一个“技巧”可以读取 a 中的 Gradle 构建信息,Jenkinsfile因为两者都是 Groovy,但我是 Groovy 新手:)