Ich habe zwei Hudson String Parameter in meiner parametrisierten Build-Konfiguration erstellt: svnRoot
und .Verwenden Sie Hudson Build Parameter in Grails Build Ziel
Ich kann diese nur gut bei der Angabe meiner Repository-URL: ${svnRoot}/${svnBranch}/subProject
.
Aber ich konnte sie nicht als Teil meiner Grails Build Target beziehen: "build-applet ${svnRoot}/${svnBranch}/appletProject username password" "war --non-interactive"
. build-applet
ruft ein Gant-Skript im Grails-Projekt unter scripts\BuildApplet.groovy
auf. Dieser Versuch ergibt die folgende Fehlermeldung:
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)
Was ist der beste und einfachste Weg, oder um mein Ziel zu erreichen?
Danke @leebutts! Ihr Codebeispiel hat nicht ganz funktioniert, aber es hat mich auf den richtigen Weg gebracht. Zuerst habe ich in der Dokumentation, die Sie verlinkt haben, gesehen, dass Sie vergessen haben, einfache Anführungszeichen um 'svnRoot' und' svnBranch' in Ihrem Beispiel hinzuzufügen. Aber selbst nachdem diese Korrektur vorgenommen wurde, erstickte das Skript bei der Verwendung von 'System.properties [" grails.cli.args "]?. Tokenize()', um die Argumente zu parsen. Die Punktnotation zur Dereferenzierung der 'env'-Variablen funktionierte jedoch perfekt:' grills build-applet $ {env.svnRoot}/$ {env.svnBranch}/appletProject Benutzername password'. Fühlen Sie sich frei, Ihre Antwort zu aktualisieren. –