在Grails中,如何在使用'set-version'时附加内部版本号

时间:2011-02-17 03:40:23

标签: grails jenkins

我正在使用Jenkins(Hudson)和Grails插件进行构建,因为我更新了svn。我发现这个示例脚本允许您合并来自env var的构建号:

set-version 1.1.0.${env['BUILD_NUMBER']}

但如您所见,前缀是硬编码的。我想使用application.properties文件中设置的版本号。我该怎么做:

set-version ${app.version}.${env['BUILD_NUMBER']}

尝试了各种范围/语法无济于事。

1 个答案:

答案 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)