2012-04-03 23 views
5

Al usar el complemento Groovy Jenkins (no el complemento Groovy Post Build, que es una cosa diferente) como un Paso posterior, no puedo resolver clases en el paquete hudson.model.¿Paquetes de Jenkins en Groovy Classpath?

¿Debo agregar el Jenkins .war al classpath, o estos paquetes ya deberían estar allí?

Guión:

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

Salida:

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

Respuesta

6

Sí, si se trata de un Groovy Script que hacer necesidad de añadir el frasco jenkins-core a la ruta de clases, y el frasco grapadora también.

Si es un Groovy System Script, se ejecuta dentro de la JVM del maestro, lo que significa que todas las clases y dependencias de Jenkins ya se encuentran en el classpath.

+2

¿Es realmente posible ejecutar su código anterior como un simple 'Groovy Script' al agregar el jar correcto al classpath? De la documentación del complemento de Groovy, tengo la impresión de que el código no funcionará como en una instancia de JVM diferente, por lo que no podrá agregar un parámetro en la JVM en ejecución. – Tonin

+1

@engineerbetter Sé que esto es viejo, pero ¿te importa compartir cómo se ponen estos frascos en el camino de clase con respecto a Jenkins y Groovy? ¿Simplemente voy en la configuración avanzada de mi script de Groovy, especifico el classpath donde están alojados mis archivos jar? – TekiusFanatikus

Cuestiones relacionadas