2

我正在使用 Jenkins (Hudson) 和 Grails 插件在更新 svn 时进行构建。我找到了这个示例脚本,它允许您从 env var 中合并内部版本号:

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

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

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

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

4

1 回答 1

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)
于 2011-02-17T12:32:01.800 回答