代码之家  ›  专栏  ›  技术社区  ›  user3847894

用于sonarqube配置的Jenkins groovy初始化脚本

  •  1
  • user3847894  · 技术社区  · 6 年前

    我试图使用groovy init脚本在Jenkins系统属性中设置sonarqube设置,但出现以下错误。有人能帮我解决这个问题吗?

    Error
    +++++
    
    groovy.lang.GroovyRuntimeException: Could not find matching constructor for: 
    hudson.plugins.sonar.SonarInstallation(java.lang.String, java.lang.String, 
    java.lang.String, hudson.plugins.sonar.model.TriggersConfig, 
    java.lang.String)
    at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1732)
    at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1532)
    

    这是我正在使用的脚本

    import hudson.model.*
    import jenkins.model.*
    import hudson.plugins.sonar.SonarGlobalConfiguration
    import hudson.plugins.sonar.*
    import hudson.plugins.sonar.model.TriggersConfig
    import hudson.tools.*
    
    def inst = Jenkins.getInstance()
    
    println "--> Configuring SonarQube"
    
    SonarGlobalConfiguration global = Hudson.instance.getDescriptorByType(SonarGlobalConfiguration.class)
    
    def sonar_inst = new SonarInstallation(
        "SonarQ",
        "http://localhost:9000",
        "yy", // Token
        new TriggersConfig(),
        ""
    )
    
    // Only add ADOP Sonar if it does not exist - do not overwrite existing config
    def sonar_installations = sonar_conf.getInstallations()
    def sonar_inst_exists = false
    sonar_installations.each {
        installation = (SonarInstallation) it
        if (sonar_inst.getName() == installation.getName()) {
            sonar_inst_exists = true
            println("Found existing installation: " + installation.getName())
        }
    }
    
    if (!sonar_inst_exists) {
        sonar_installations += sonar_inst
        sonar_conf.setInstallations((SonarInstallation[]) sonar_installations)
        sonar_conf.save()
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   agabrys    6 年前

    您遗漏了一些参数。 SonarInstallation 构造函数需要7个参数,而不是5个:

    @DataBoundConstructor
    public SonarInstallation(String name,
      String serverUrl, String serverAuthenticationToken,
      String mojoVersion, String additionalProperties, TriggersConfig triggers,
      String additionalAnalysisProperties) {
      this.name = name;
      this.serverUrl = serverUrl;
      this.serverAuthenticationToken = serverAuthenticationToken;
      this.additionalAnalysisProperties = additionalAnalysisProperties;
      this.mojoVersion = mojoVersion;
      this.additionalProperties = additionalProperties;
      this.triggers = triggers;
    }