2015-08-10 3 views
0

Я использую плагин dsl job для создания заданий jenkins. У меня возникла проблема с выполнением сонара плагина dsl. Я использую плагин Flexible Publish для обеспечения условного запуска сонара; т. е. если мы найдем pom.xml в рабочем пространстве, запускаем сонар. Проблема в том, что я хочу установить переменную сонара 'jobAdditionalProperties', но эта переменная еще не поддерживается плагином задания dsl. То, что я получил до сих пор:job dsl - sonar using flexible publish plugin

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

Вы на правильном пути. В блоке configure вам необходимо перейти к элементу SonarPublisher в XML-структуре FlexiblePublisher, например. например:

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('..') 
} 
+0

Спасибо! Именно то, что я искал –

Смежные вопросы