2016-06-30 17 views
2

Als ich versuchte, das folgende Groovy-Skript in Jenkins-Konsole auszuführen, tritt der folgende Fehler auf.Jenkins-Groovy Skriptfehler

import hudson.model.* 

/* removed as per comments 
// get current thread/Executor 
def thr = Thread.currentThread() 
// get current build 

import hudson.model.* 
def build = thr?.executable 
*/ 

// get parameters 
def parameters = build?.actions.find{ it instanceof ParametersAction }?.parameters 
parameters.each { 
    println "parameter ${it.name}:" 
    println it.dump() 
    println "-" * 80 
} 

// ... or if you want the parameter by name ... 
def hardcoded_param = "FOOBAR" 
def resolver = build.buildVariableResolver 
def hardcoded_param_value = resolver.resolve(hardcoded_param) 

println "param ${hardcoded_param} value : ${hardcoded_param_value}" 

Dies wurde aus Use Jenkins > Jenkins Script Console > Parameterized System Groovy script entnommen.

Der Fehler sagt es einige fehlende Eigenschaften enthält:

groovy.lang.MissingPropertyException: No such property: executable for class: java.lang.Thread 
     at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50) 
     at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:63) 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227) 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetPropertySafe(AbstractCallSite.java:333) 
     at Script1.run(Script1.groovy:6) 
     at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580) 
     at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618) 
     at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589) 
     at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:142) 
     at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:114) 
     at hudson.remoting.LocalChannel.call(LocalChannel.java:45) 
     at hudson.util.RemotingDiagnostics.executeGroovy(RemotingDiagnostics.java:111) 
     at jenkins.model.Jenkins._doScript(Jenkins.java:3612) 
     at jenkins.model.Jenkins.doScript(Jenkins.java:3584) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:320) 
     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:163) 
     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96) 
     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) 
     at org.kohsuke.stapler.Stapler.service(Stapler.java:238) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494) 
     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) 
     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
     at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
     at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
     at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474) 
     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) 
     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) 
     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
     at org.eclipse.jetty.server.Server.handle(Server.java:370) 
     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) 
     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) 
     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) 
     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) 
     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 
     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 

Ich habe bereits versucht Running Groovy command from Jenkins using Groovy script plugin aber nicht in meinem Fall arbeiten.

Antwort

0

Wenn ich build In SchrittExecute System Groovy SkriptGroovy Befehl:

import hudson.model.* 

// get parameters 
def parameters = build?.actions.find{ it instanceof ParametersAction }?.parameters 
parameters.each { 
    println "parameter ${it.name}:" 
    println it.dump() 
    println "-" * 80 
} 

// ... or if you want the parameter by name ... 
def hardcoded_param = "FOOBAR" 
def resolver = build.buildVariableResolver 
def hardcoded_param_value = resolver.resolve(hardcoded_param) 

println "param ${hardcoded_param} value : ${hardcoded_param_value}" 

der Ausgang ist:

param FOOBAR value : null 

, die verständlich ist, da, wo die Wert von ${FOOBAR} soll kommen?

Wenn ich ☑ wählen Dieser Build ist parametrisierteParameter hinzufügenString Parameter:

  • Namen: FOOBAR
  • Standardwert: FOOBAR_value

der Ausgang ist:

parameter FOOBAR: 
<[email protected] value=FOOBAR_value name=FOOBAR description=> 
-------------------------------------------------------------------------------- 
param FOOBAR value : FOOBAR_value 
+0

Danke. Ich wusste nicht, wie ich den Wert zuweisen sollte. Das hat geholfen. –

1

Angenommen, Sie verwenden ein "System Groovy Script", dann, wenn ich die code richtig lese, sollte die Build-Variable bereits verfügbar sein und Sie brauchen es nicht über Thread, die nicht die Eigenschaft " ausführbare Datei "verursacht den Absturz.

Dies ist auch in Übereinstimmung mit dem Beispiel gezeigt here wo die build Variable nur magisch existiert.

+0

ich mit @kentis zustimmen - die Nutzung im Thread entfernen, Sie bauen get instance „kostenlos“ –

+0

Danke für die schnelle Antwort. Ich habe die Buildvariablendeklaration entfernt und die Frage aktualisiert. aber es zeigt immer noch kein Ergebnis. Kannst du mir bitte helfen zu verstehen, wo ich falsch gemacht habe? –

+0

Während dies ein wertvoller Hinweis ist, beantwortet es die Frage nicht. –