【发布时间】:2017-12-13 14:34:55
【问题描述】:
我正在尝试通过 groovy 脚本配置 Jenkins Jira 插件,但出现错误
WARNING: Failed to run script file:/var/jenkins_home/init.groovy.d/k_JiraPluginConfig.groovy
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: hudson.plugins.jira.JiraSite(java.net.URL, java.net.URL, java.lang.String, java.lang.String, java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, null, null, java.lang.Boolean)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1732)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1532)
at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:49)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
at k_JiraPluginConfig.run(k_JiraPluginConfig.groovy:13)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
at jenkins.util.groovy.GroovyHookScript.execute(GroovyHookScript.java:136)
at jenkins.util.groovy.GroovyHookScript.execute(GroovyHookScript.java:127)
at jenkins.util.groovy.GroovyHookScript.run(GroovyHookScript.java:110)
at hudson.init.impl.GroovyInitScript.init(GroovyInitScript.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
at jenkins.model.Jenkins$5.runTask(Jenkins.java:1065)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
这是我的 groovy 脚本的样子
import hudson.plugins.jira.JiraProjectProperty
import hudson.plugins.jira.JiraSite
import jenkins.model.*
def env = System.getenv()
def jenkins = Jenkins.getInstance()
JiraProjectProperty.DescriptorImpl config = jenkins.getExtensionList(JiraProjectProperty.DescriptorImpl.class)[0]
JiraSite jiraSite = new JiraSite(new URL(env.JIRA_URL),
new URL(env.JIRA_URL),
env.JIRA_USERNAME,
env.JIRA_PASSWORD,
true,
true,
true,
null, null, false)
jiraSite.setDisableChangelogAnnotations(false)
jiraSite.setTimeout(10)
jiraSite.setDateTimePattern('EEE, d MMM yyyy HH:mm:ss Z')
jiraSite.setAppendChangeTimestamp(true)
config.setSites(jiraSite)
config.save()
我从 Jira-plugin 的配置文件中派生出这段代码,该 XML 文件如下所示
<?xml version='1.0' encoding='UTF-8'?>
<hudson.plugins.jira.JiraProjectProperty_-DescriptorImpl plugin="jira@2.5">
<sites>
<hudson.plugins.jira.JiraSite>
<url>https://jira.mycompany.com/</url>
<useHTTPAuth>false</useHTTPAuth>
<userName>Jenkins</userName>
<password>{secretPassword}</password>
<supportsWikiStyleComment>true</supportsWikiStyleComment>
<recordScmChanges>true</recordScmChanges>
<disableChangelogAnnotations>false</disableChangelogAnnotations>
<updateJiraIssueForAllStatus>true</updateJiraIssueForAllStatus>
<timeout>10</timeout>
<dateTimePattern></dateTimePattern>
<appendChangeTimestamp>true</appendChangeTimestamp>
</hudson.plugins.jira.JiraSite>
</sites>
</hudson.plugins.jira.JiraProjectProperty_-DescriptorImpl>
不确定我在这里缺少什么,任何帮助都会很明显。
更多细节
Jenkins 版本 - 2.9.3
Jira 版本 - 7.2.2
Jira 插件版本 - 2.5
Jira 插件回购 - https://github.com/jenkinsci/jira-plugin
提前致谢
【问题讨论】:
标签: jenkins groovy jenkins-plugins jira-plugin