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

Job DSL Plugin - Invoke Sonarqube Scanner for MSBuild

我想在 Jenkins 作业中使用 作业 DSL 插件 脚本。

我想生成如下所示的 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 片段,但它失败了 "signature error"

    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]

任何人都可以帮助我使用 DSL 脚本来生成这个代码片段 XML

以下脚本适合我。该脚本使用 Automatically Generated DSL,它仅在 运行 Jenkins 中的 "Process Job DSLs" 构建步骤时可用。

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