2016-04-13 3 views
3

У меня есть несколько уровней вложенных проектов Maven, где каждый модуль может участвовать в тестах глобальной интеграции. Для того, чтобы иметь глобальный охват, мульти модуль, я настроил jacoco использовать и совместно использовать один и тот же файл accross модулей, используя Maven переменную ${session.executionRootDirectory}:

<execution> 
    <id>pre-integration-test</id> 
    <phase>pre-integration-test</phase> 
    <goals> 
     <goal>prepare-agent-integration</goal> 
    </goals> 
    <configuration> 
     <propertyName>jacoco.failsafeArgLine</propertyName> 
     <destFile>${session.executionRootDirectory}/target/jacoco-it.exec</destFile> 
    </configuration> 
</execution> 

Таким образом, тот же файл данных используется каждым модулем, независимо от того, насколько глубоко он вложен в подмодули. Я проверил, правильный файл данных генерируется jacoco при запуске «mvn clean install».

Теперь проблема возникает при запуске mvn sonar:sonar. Кажется, что плагин не может заменить эту переменную реальным путем. Я могу видеть следующее в журналах

[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec 

Это не работает лучше при использовании @{session.executionRootDirectory}.

Любое обходное решение?

ответ

0

После a comment in this bug report at SonarSource, советуя использовать следующую конфигурацию:

<plugin> 
    <groupId>com.github.goldin</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>0.2.5</version> 
    <executions> 
     <execution> 
      <id>set-sonar.jacoco.reportPath</id> 
      <goals> 
       <goal>set-properties</goal> 
      </goals> 
      <phase>initialize</phase> 
      <configuration> 
       <rawProperties> 
        sonar.jacoco.itReportPath = ${session.executionRootDirectory}/target/jacoco-it.exec 
       </rawProperties> 
       <addDollar>true</addDollar> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

..., который был, к сожалению, не совместим с Maven 3.1+, я использовал и построены из источников that fork, а затем я был в состоянии сделайте все правильно с Maven 3.2.3.

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