【问题标题】:Use Hudson Build Parameter in Grails Build Target在 Grails 构建目标中使用 Hudson 构建参数
【发布时间】:2011-06-01 04:04:39
【问题描述】:

我在参数化构建配置中创建了两个 Hudson 字符串参数:svnRootsvnBranch

在指定我的存储库 URL 时,我可以很好地引用这些:${svnRoot}/${svnBranch}/subProject

但我无法在我的 Grails 构建目标中引用它们:"build-applet ${svnRoot}/${svnBranch}/appletProject username password" "war --non-interactive"build-appletscripts\BuildApplet.groovy 处调用 Grails 项目中的 Gant 脚本。此尝试产生以下错误:

groovy.lang.MissingPropertyException: 没有这样的属性:svnRoot 类: 脚本 1 在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49) 在 org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:240) 在 Script1.run(Script1.groovy:1) 在 groovy.lang.GroovyShell.evaluate(GroovyShell.java:561) 在 groovy.lang.GroovyShell.evaluate(GroovyShell.java:536) 在 com.g2one.hudson.grails.GrailsBuilder.evalTarget(GrailsBuilder.java:212) 在 com.g2one.hudson.grails.GrailsBuilder.perform(GrailsBuilder.java:168) 在 hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) 在 hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:603) 在 hudson.model.Build$RunnerImpl.build(Build.java:172) 在 hudson.model.Build$RunnerImpl.doRun(Build.java:137) 在 hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:417) 在 hudson.model.Run.run(Run.java:1337) 在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 在 hudson.model.ResourceController.execute(ResourceController.java:88) 在 hudson.model.Executor.run(Executor.java:140)

实现我的目标最好或最简单的方法是什么?

【问题讨论】:

    标签: grails ant continuous-integration hudson gant


    【解决方案1】:

    通过查看 Grails 插件 (http://wiki.hudson-ci.org/display/HUDSON/Grails+Plugin) 上的 wiki 页面,这应该可以工作

    grails build-applet ${env.svnRoot}/${env.svnBranch}/appletProject username password
    

    如果没有,我会尝试命令行构建步骤。确保将 GRAILS_HOME 设置为脚本中的第一行,然后调用 grails。

    干杯

    【讨论】:

    • 谢谢@leebutts!您的代码示例不太有效,但它让我走上了正确的道路。首先,查看您链接的文档,我发现您忘记在示例中在 svnRootsvnBranch 周围添加单引号。但是即使在进行了修复之后,当使用System.properties["grails.cli.args"]?.tokenize() 解析参数时,脚本也会在[ 上阻塞。但是,使用点符号来取消引用 env 变量非常有效:grails build-applet ${env.svnRoot}/${env.svnBranch}/appletProject username password。随时更新您的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 2011-06-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多