我正在使用Jenkins(Hudson)和Grails插件进行构建,因为我更新了svn。我发现这个示例脚本允许您合并来自env var的构建号:
set-version 1.1.0.${env['BUILD_NUMBER']}
但如您所见,前缀是硬编码的。我想使用application.properties文件中设置的版本号。我该怎么做:
set-version ${app.version}.${env['BUILD_NUMBER']}
尝试了各种范围/语法无济于事。
答案 0 :(得分:2)
开箱即用是不可能的。 Jenkins或特别是Grails插件不会读取application.properties
文件的内容,因此现有的应用程序版本不能作为变量使用。
您可能需要考虑在应用程序中编写自定义脚本(如append-version
),该脚本将读取application.properties
并附加传入的值。您可以调用现有的set-version脚本进行修改论证。
我还创建了一个应该完成这项工作的简单脚本:
includeTargets << grailsScript("Init")
target(main: "Append a string to the existing version number") {
depends(checkVersion, parseArguments)
def newVersion = metadata.'app.version' + '-' + args
metadata.'app.version' = newVersion
metadata.persist()
}
setDefaultTarget(main)