我正在使用作业dsl插件来生成jenkins作业。我正在使用作业dsl插件的声纳实现遇到一些问题。 我正在使用Flexible Publish插件为运行声纳提供条件;即如果我们在工作区中找到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>
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
你走在正确的轨道上。在配置块中,您需要导航到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('..')
}