【问题标题】:job dsl - sonar using flexible publish pluginjob dsl - 使用灵活发布插件的声纳
【发布时间】:2015-08-11 01:12:32
【问题描述】:

我正在使用作业 dsl 插件来生成 jenkins 作业。我在作业 dsl 插件的声纳实现中遇到了一些问题。 我正在使用灵活发布插件来提供运行声纳的条件;即,如果我们在工作区中找到 pom.xml,则运行声纳。问题是我想设置声纳变量“jobAdditionalProperties”,但作业 dsl 插件尚不支持该变量。 到目前为止我得到了什么:

publishers {
  flexiblePublish {
    condition {
      fileExists('pom.xml', BaseDir.WORKSPACE)
    }
    publisher {
     sonar {
       branch('master')
     }        
    }
  }
}

我尝试使用配置方法,如根据文档:

configure { project ->
  project / publishers << 'hudson.plugins.sonar.SonarPublisher' {
    jobAdditionalProperties('..')
 }

但这不起作用,因为 xml 使用条件嵌套在灵活的发布插件中,并且 xml 不是在正确的位置生成的。 XML 树看起来像这样:

    <publishers>
    <org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher>
        <publishers>
            <org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher>
                <condition class='org.jenkins_ci.plugins.run_condition.core.FileExistsCondition'>
                    <file>pom.xml</file>
                    <baseDir class='org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace'></baseDir>
                </condition>
                <publisherList>
                    <hudson.plugins.sonar.SonarPublisher>
                    <branch></branch>
                    <jobAdditionalProperties></jobAdditionalProperties>

有人知道如何解决这个问题吗?

【问题讨论】:

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


【解决方案1】:

你在正确的轨道上。在配置块中,您需要导航到 FlexiblePublisher XML 结构中的 SonarPublisher 元素,例如像这样:

configure { project ->
    project / 
            publishers / 
            'org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher' /
            publishers /
            'org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher' /
            publisherList /
            'hudson.plugins.sonar.SonarPublisher' /
            jobAdditionalProperties('..')
}

【讨论】:

  • 谢谢!正是我想要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多