首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins Jira-Plugin找不到匹配的构造函数。

Jenkins Jira-Plugin找不到匹配的构造函数。
EN

Stack Overflow用户
提问于 2017-12-13 14:34:55
回答 1查看 1K关注 0票数 0

我试图通过groovy脚本配置Jenkins Jira插件,但得到了一个错误

代码语言:javascript
复制
    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脚本

代码语言:javascript
复制
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文件如下所示

代码语言:javascript
复制
<?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

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-18 16:42:23

您需要查看JiraSite构造器并更新groovy脚本中的JiraSite构造函数调用来匹配它。JiraSite的构造函数如下所示

代码语言:javascript
复制
JiraSite(URL url, URL alternativeUrl,
         String userName, String password,
         boolean supportsWikiStyleComment, boolean recordScmChanges, 
         String userPattern, boolean updateJiraIssueForAllStatus, 
         String groupVisibility, String roleVisibility, 
         boolean useHTTPAuth)

因此,根据构造函数签名,需要更新groovy脚本中的构造函数调用,如下所示:

代码语言:javascript
复制
JiraSite jiraSite = new JiraSite(new URL(env.JIRA_URL), new URL(env.JIRA_URL),
                        env.JIRA_USERNAME, env.JIRA_PASSWORD,
                        true, true,
                        null, true,
                        null, null,
                        false)

我假设userPattern不是必需的,因此给出了null,您可以用所需的内容来更新它。这就是您在构造函数调用中忽略的参数。

希望这能有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47795548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档