2012-04-03 15 views
5

Quando si utilizza il plugin Groovy Jenkins (non il Groovy Post Build Plugin, che è una cosa diversa) come Post Step, non riesco a risolvere le classi nel pacchetto hudson.model.Pacchetti Jenkins su Groovy Classpath?

Devo aggiungere il Jenkins .war al classpath, o questi pacchetti dovrebbero già essere lì?

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); 

uscita:

[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; 
[...] 

risposta

6

Sì, se si tratta di un Groovy Script si fare necessità di aggiungere il vaso jenkins-core al classpath, e il vaso della cucitrice pure.

Se è un Groovy System Script, viene eseguito all'interno della JVM del master, il che significa che tutte le classi e le dipendenze di Jenkins sono già nel classpath.

+2

È davvero possibile eseguire il codice sopra come un semplice 'Groovy Script' quando si aggiunge il jar corretto al classpath? Dalla documentazione del plugin Groovy ho l'impressione che il codice non funzioni come in un'altra istanza JVM, quindi non sarà possibile aggiungere un parametro nella JVM già in esecuzione. – Tonin

+1

@engineerbetter So che questo è vecchio, ma mi interessa condividere come questi vasi vengono messi nel classpath per quanto riguarda Jenkins e Groovy? Vado semplicemente nella configurazione avanzata del mio script Groovy, specificando il classpath in cui sono ospitati i miei vasi? – TekiusFanatikus

Problemi correlati