Job DSL插件 - 为MSBuild调用Sonarqube扫描仪

时间:2017-03-15 19:16:21

标签: jenkins groovy jenkins-plugins dsl jenkins-job-dsl

我想使用 Job DSL插件脚本在Jenkins作业中调用 Sonarqube Scanner for MSBuild Begin Analysis Sonarqube Scanner for MSBuild End Analysis

我想生成如下所示的 config.xml

<hudson.plugins.sonar.MsBuildSQRunnerBegin plugin="sonar@2.6">
  <projectKey>a</projectKey>
  <projectName>b</projectName>
  <projectVersion>c</projectVersion>
  <additionalArguments></additionalArguments>
</hudson.plugins.sonar.MsBuildSQRunnerBegin>

<hudson.plugins.sonar.MsBuildSQRunnerEnd plugin="sonar@2.6"/>

我使用了下载的DSL剪辑,但它失败了&#34;签名错误&#34;

    msBuildSQRunnerBegin {
        additionalArguments('')
        msBuildScannerInstallationName('')
        projectKey('TinyJSON')
        projectName('Tiny Json')
        projectVersion('1.0')
        sonarInstallationName('')
    }
    msBuild {
        buildFile('TinyJSON.sln')
    }
    msBuildSQRunnerEnd()

错误

javaposse.jobdsl.dsl.DslScriptException: (script, line 17) No signature of method: javaposse.jobdsl.dsl.helpers.step.StepContext.msBuildSQRunnerBegin() is applicable for argument types: (script$_run_closure1$_closure3$_closure8) values: [script$_run_closure1$_closure3$_closure8@6a96899c]

有人可以帮我解决可能在作业XML中生成此代码段的DSL脚本

1 个答案:

答案 0 :(得分:1)

以下脚本适合我。该脚本使用Automatically Generated DSL,该{{3}}仅在运行&#34;处理作业DSL&#34;在詹金斯建立一步。

job('example') {
  steps {
    msBuildSQRunnerBegin {
      additionalArguments('')
      msBuildScannerInstallationName('')
      projectKey('TinyJSON')
      projectName('Tiny Json')
      projectVersion('1.0')
      sonarInstallationName('')
    }
    msBuild {
      buildFile('TinyJSON.sln')
    }
    msBuildSQRunnerEnd()
  }
}