2016-02-03 3 views
1

У нас есть JaCoCo, работающий в нашей POM, и он запускается и сообщает каждый раз, когда мы запускаем clean install.maven JaCoCo только для фазы сайта

Что мы действительно хотели бы сделать, это запустить только JaCoCo, когда запущен maven site.

Я попытался добавить:

... 
<configuration> 
<skip>${jacoco.skip}</skip> 
.... 

И установка jacoco.skip в true на этапе сборки, но в разделе отчетности, я добавил:

... 
<plugin> 
<groupId>org.jacoco</groupId> 
<artifactId>jacoco-maven-plugin</artifactId> 
<version>0.7.5.201505241946</version> 
<configuration> 
    <skip>false</skip> 
    <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile> 
... 

Но это не работает. Установка jacoco.skip на true не позволяет JaCoCo работать на нормальной установке maven clean, но также влияет на отчетность.

Вопрос: Как настроить maven так, чтобы JaCoCo успешно работал на сайте maven, но не работает для mvn clean install?

+0

вы можете поделиться немного больше конфигурации плагина jacoco вашего POM? Как вы управляете jacoco? только через командную строку или выполняется ли какое-либо исполнение? –

ответ

1

Самый простой способ заключается в передаче его в Maven profile, удаляя его конфигурацию для build раздела и поместить его в профиль следующим образом:

<profiles> 
    <profile> 
     <id>jacoco</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <version>0.7.1.201405082137</version> 
        <configuration><!-- here --></configuration> 
       </plugin> 
      </plugins> 
     </build> 

     <reporting> 
      <plugins> 
       <plugin> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <version>0.7.1.201405082137</version> 
       </plugin> 
      </plugins> 
     </reporting> 
    </profile> 
</profiles> 

Вы можете добавить пользовательскую конфигурацию там.

Тогда нормальный строит не будет применять его, в то время как вы всегда можете активировать его с помощью:

mvn clean install -Pjacoco 

или

mvn site -Pjacoco 
+0

Спасибо. Использование maven для выполнения того, что делает maven. Хороший ответ. Я добавил блок активации, который активировал бы этот профиль по умолчанию на нашем сервере Jenkins, чтобы отчеты были доступны в Jenkins, но локальные сборки, которые хотят только быстрой сборки, отключены JaCoCo. – theINtoy

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