2012-04-03 34 views
5

Post Adım olarak Groovy Jenkins eklentisini (farklı bir şey olan Groovy Post Build Plugin'i değil) kullanırken, hudson.model paketindeki sınıfları çözemiyorum.Jenkins Paketleri?

Jenkins .war'ı sınıf yoluna eklemem gerekir mi yoksa bu paketler zaten orada mı olmalıdır?

Senaryo:

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

Çıktı:

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

cevap

6

Evet, bir Groovy Script Eğer Sınıfyoluna jenkins-core kavanoz eklemek için ihtiyacını yapmak , ve eğer zımba kavanoz çok.

Eğer bir Groovy System Script ise, o zaman master'ın JVM'sinin içinde çalışır, yani tüm Jenkins sınıfları ve bağımlılıkları zaten sınıf yolundadır.

+2

Sınıf yolunuza doğru jarleri eklerken yukarıdaki kodunuzu basit bir 'Groovy Script' olarak çalıştırmak gerçekten mümkün mü? Groovy eklenti belgelerinden, kodun farklı bir JVM örneğindeki gibi çalışmayacağı izlenimine sahibim, bu nedenle zaten çalışan JVM'ye bir parametre ekleyemezsiniz. – Tonin

+1

@engineerbetter Bu eski olduğunu biliyorum, ancak bu kavanozların nasıl Jenkins ve Groovy açısından sınıf yoluna koyulduğunu paylaşmaya dikkat et? Groovy betiğimin gelişmiş konfigürasyonuna girip kavanozlarınmın barındırıldığı sınıf yolunu seçer miyim? – TekiusFanatikus