2012-04-03 10 views
5

Wenn Sie das Groovy Jenkins Plugin (nicht das Groovy Post Build Plugin, was eine andere Sache ist) als Post Step verwenden, kann ich die Klassen im hudson.model Paket nicht auflösen.Jenkins Pakete auf Groovy Classpath?

Muss ich die Jenkins .war auf den Klassenpfad hinzufügen, oder sollten diese bereits vorhanden sein?

Script:

import hudson.model.*; 
import hudson.util.*; 

AbstractBuild currentBuild = (AbstractBuild) Thread.currentThread().executable; 
def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version; 
println mavenVer; 
ParametersAction newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue(“MAVEN_VERSION”, mavenVer)); 
currentBuild.addAction(newParamAction); 

Ausgang:

[Common] $ /home/tester/tools/Groovy_1.8.3/bin/groovy /home/tester/workspace/Common/hudson8369102960709507246.groovy 
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
/home/tester/workspace/Common/hudson8369102960709507246.groovy: 8: unable to resolve class AbstractBuild 
@ line 8, column 15. 
    AbstractBuild currentBuild = (AbstractBuild) Thread.currentThread().executable; 
[...] 

Antwort

6

Ja, wenn es ein Groovy Script Sie Notwendigkeit tun die jenkins-core Glas zu Ihrem Classpath, und der Hefter jar hinzufügen auch.

Wenn es ein Groovy System Script ist, dann wird es innerhalb der Master-JVM ausgeführt, was bedeutet, dass alle Jenkins-Klassen und Abhängigkeiten bereits auf dem Klassenpfad sind.

+2

Ist es wirklich möglich, Ihren Code oben als einfaches 'Groovy Script' auszuführen, wenn Sie dem Klassenpfad das richtige Glas hinzufügen? Aus der Groovy-Plugin-Dokumentation habe ich den Eindruck, dass der Code nicht wie in einer anderen JVM-Instanz funktioniert, so dass Sie keinen Parameter in der bereits laufenden JVM hinzufügen können. – Tonin

+1

@engineerbetter Ich weiß, das ist alt, aber interessiert euch, wie diese Gläser in den Klassenpfad in Bezug auf Jenkins und Groovy gebracht werden? Gehe ich einfach in die erweiterte Konfiguration meines Groovy-Skripts und gebe den Klassenpfad an, in dem meine Jars gehostet werden? – TekiusFanatikus

Verwandte Themen