如何配置Jenkins“创建作业高级”插件通过groovy? [英] How do you configure the Jenkins "Create Job Advanced" plugin via groovy?

查看:137
本文介绍了如何配置Jenkins“创建作业高级”插件通过groovy?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的主要目标是使用groovy来配置Jenkins和所有插件,这样我就不需要通过web界面手动配置Jenkins了,如这里正在尝试。 p>

具体来说,我正在尝试配置插件



当我在Jenkins脚本控制台中尝试以下代码时:

  import org.codehaus.groovy.runtime.NullObject; 

// Jenkins实例
def描述符= jenkins.model.Jenkins.getInstance()。getDescriptorByType(hudson.plugins.createjobadvanced.CreateJobAdvancedPlugin.class);

org.kohsuke.stapler.StaplerRequest stapler = null

//插件参数
net.sf.json.JSONObject jsonObject = new net.sf.json。的JSONObject();
jsonObject.put(security,false);
jsonObject.put(jobspacesinname,true);

println(是订书机请求吗?$ {订书机实例org.kohsuke.stapler.StaplerRequest}。);

descriptor.configure(stapler,jsonObject);

我一直得到这个错误无法在null对象上调用方法configure() / code>并且不知道为什么。

 是订书机要求吗?真正。 
java.lang.NullPointerException:无法在null对象上调用方法configure()org.codehaus.groovy.runtime.NullObject.invokeMethod上的
(NullObject.java:77)$ or $ $ $ b $ org.codehaus .groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)$ or $ $ b $ org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus .groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32)
在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
在org.codehaus .groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at Script1.run (Script1.groovy:14)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
在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:3542)
at jenkins.model.Jenkins.doScript(Jenkins.java:3514)
at sun.reflect.GeneratedMethodAccessor215.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)$在java.lang.reflect.Method.invoke(Method.java:497)
在org.kohsuke.stapler.Function $ InstanceFunction.invoke(Function.java:298)
。 kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
at org.kohsuke.stapler.MetaClass $ 1.doDispatch (MetaClass.java:121)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
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(订书机.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:123)
at hudson .plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
在hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:120)
在hudson.plugins.greenballs.GreenBallFilter.doFilter( GreenBallFilter.java:58)
在hudson.util.PluginServletFil之三$ 1.doFilter(PluginServletFilter.java:120)
在hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
在org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler .java:1482)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482 )
在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:84)
在hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
在hudson.security.HudsonFilter .doFilter(HudsonFilter.java:168)
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)
在org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482)
在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.handler.ContextHandler.doHandle(ContextHandler.java:1086)
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)$ b $ org.eclip se.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)$ or $。$ b $在org.eclipse.jetty.server.Server.handle(Server.java:370)
在org.eclipse。在org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)上
在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)
在org.eclipse.jetty.io.nio.SelectChannelEndPoint $ 1.run(SelectChannelEndPoint.java:52)
在winstone.BoundedExecutorService $ 1.run(BoundedExecutorService.java:77)$ b $在java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread .java:745)

CreateJobAdvancedPlugin类似乎没有描述符。您需要从PluginManager获取插件实例,例如

  import hudson.PluginWrapper 
import hudson.plugins。 createjobadvanced.CreateJobAdvancedPlugin
进口jenkins.model.Jenkins

PluginWrapper包装= Jenkins.instance.pluginManager.getPlugin(CreateJobAdvancedPlugin)
CreateJobAdvancedPlugin插件= wrapper.getPlugin()作为CreateJobAdvancedPlugin


My main goal is to use groovy to configure Jenkins and all the plugins, so that I don't need to manually configure Jenkins through the web interface, as the the post here was trying.

Specifically, I'm trying to configure the Create Job Advanced plugin in Jenkins through groovy.

When I try this code in the Jenkins Script Console:

import org.codehaus.groovy.runtime.NullObject;

// Jenkins instance
def descriptor = jenkins.model.Jenkins.getInstance().getDescriptorByType(hudson.plugins.createjobadvanced.CreateJobAdvancedPlugin.class);

org.kohsuke.stapler.StaplerRequest stapler = null

// Plugin Parameters
net.sf.json.JSONObject jsonObject = new net.sf.json.JSONObject();
jsonObject.put("security", false);
jsonObject.put("jobspacesinname", true);

println ("Is it a stapler request? ${stapler instanceof org.kohsuke.stapler.StaplerRequest}.");

descriptor.configure(stapler, jsonObject); 

I keep getting this error Cannot invoke method configure() on null object and don't know why.

Is it a stapler request? true.
java.lang.NullPointerException: Cannot invoke method configure() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
    at Script1.run(Script1.groovy:14)
    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:3542)
    at jenkins.model.Jenkins.doScript(Jenkins.java:3514)
    at sun.reflect.GeneratedMethodAccessor215.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    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:123)
    at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)
    at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
    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(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

How can the Create Job Advanced plugin be configured via groovy?

解决方案

The CreateJobAdvancedPlugin class seems to have no Descriptor. You need to get the plugin instance from the PluginManager instead, e.g.

import hudson.PluginWrapper
import hudson.plugins.createjobadvanced.CreateJobAdvancedPlugin
import jenkins.model.Jenkins

PluginWrapper wrapper = Jenkins.instance.pluginManager.getPlugin(CreateJobAdvancedPlugin)
CreateJobAdvancedPlugin plugin = wrapper.getPlugin() as CreateJobAdvancedPlugin

这篇关于如何配置Jenkins“创建作业高级”插件通过groovy?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆