パラメータ化されたビルドコンフィグレーションで2つのHudson Stringパラメータを作成しました:svnRoot
およびsvnBranch
です。GrailsビルドターゲットでHudsonビルドパラメータを使用
私のリポジトリURLを指定するときにこれらを参照できます:${svnRoot}/${svnBranch}/subProject
しかし、私はそれらをGrailsビルドターゲットの一部として参照できませんでした:"build-applet ${svnRoot}/${svnBranch}/appletProject username password" "war --non-interactive"
。 build-applet
はGrailsプロジェクトのGantスクリプトをscripts\BuildApplet.groovy
に呼び出します。この試行では、次のエラーが発生します。
groovy.lang.MissingPropertyException: No such property: svnRoot for class: Script1 at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:240) at Script1.run(Script1.groovy:1) at groovy.lang.GroovyShell.evaluate(GroovyShell.java:561) at groovy.lang.GroovyShell.evaluate(GroovyShell.java:536) at com.g2one.hudson.grails.GrailsBuilder.evalTarget(GrailsBuilder.java:212) at com.g2one.hudson.grails.GrailsBuilder.perform(GrailsBuilder.java:168) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:603) at hudson.model.Build$RunnerImpl.build(Build.java:172) at hudson.model.Build$RunnerImpl.doRun(Build.java:137) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:417) at hudson.model.Run.run(Run.java:1337) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:140)
私の目標を達成する最も簡単な方法は?
あなた@leebuttsをありがとう!あなたのコード例はうまくいかなかったけど、私は正しい道を選んだ。まず、リンクしたドキュメントを見ると、あなたの例では、 'svnRoot'と' svnBranch'の周りに一重引用符を追加するのを忘れたことが分かりました。しかし、この修正を行った後でも、スクリプトは、 '[' 'System.properties [" grails.cli.args "]?tokenize()'を使ってargsを解析すると、しかし、ドット表記法を使って 'env'変数を逆参照すると、' grails build-applet $ {env.svnRoot}/$ {env.svnBranch}/appletProject username password'が完全に働きました。お気軽にあなたの答えを更新してください。 –