2016-09-23 6 views
0

Я добавил плагин JaCoCo в мои плагины Maven и может успешно генерировать отчет о покрытии локально.Не удалось getClass для org.jacoco.maven.AgentMojo - Jenkins не удалось построить с плагином JaCoCo maven, но работает локально

Однако после того, как я совершил измененные pom.xmlJenkins и пытается построить проект Maven (состоящий из нескольких модулей) сборка завершается с выходом, как это:

[HUDSON] Collecting dependencies info 
[HUDSON] Collecting dependencies info 
[HUDSON] Collecting dependencies info 
[HUDSON] Collecting dependencies info 
[JENKINS] Recording test results 
[WARNING] Failed to getClass for org.jacoco.maven.AgentMojo 
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz1 
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz2 
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz3 
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz4 
channel stopped 
Finished: FAILURE 

Единственное предупреждение я получаю является Failed to getClass for org.jacoco.maven.AgentMojo, поэтому я предполагаю, что это может привести к сбою сборки.

Сначала я думал, что это связано с настройкой прокси-сервера, но я добавил тот же settings.xml в сборку Jenkins, как я использую локально (с которым успешно используется плагин).

Также я попытался найти эту ошибку в нескольких местах без везения.

Также пытался изменить П казнь, но так как он работает на местном уровне, я думаю, что нет никаких причин в изменении следующей Maven настройки pom.xml:

 <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>post-unit-test</id> 
        <phase>test</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

Почему Дженкинс не регистрирует никаких больше ошибок, чем просто [WARNING] линия?

Какая причина может быть JenkinsgetClass, в то время как на месте сборки Maven успешно работает?

Могу ли я получить покрытие JaCoCo без добавления плагина maven в xml? (Из того, что я нашел, нужно добавить для работы с плагином Jenkins)

+0

Вы пытались запустить Maven с опцией DEBUG? Просто добавьте '-X' в командную строку задания: Пример:' -X clean install'. Вы получите больше трассировки в выходной консоли. –

+0

Я уже установил '-X -e', но больше не выходит. Что-то еще должно было быть установлено неправильно, но не может выяснить, что именно. – abbath

ответ

0

Я использую плагин Jenkins JaCoCo для этого. Вам просто нужно указать, где находятся файлы java src, .class и тестовые классы. Плагин также позволяет выводить вывод отчета html из интерфейса Jenkins.

+0

Вам не нужен jacoco.exec? – abbath

+0

Извините, я не видел, что вы хотите избежать части xml. Я сравнил ваш код с моим и увидел, что единственное различие заключается в том, что вы не обеспечили цель готового агента в конфигурации JaCoCo. – cagrias

+0

Я действительно обеспечил цель «подготовить агента», и именно там, скорее всего, сработает сборка дженкинсов. – abbath

0

Подозрительный бит для меня - это то, что вы подключили цель report к фазе test, которая кажется неправильной: отчет об испытательном покрытии не может быть выполнен до проведения тестов, поэтому вы должны выбрать другой следующих фаз. Например, фаза verify (которая является фазой по умолчанию для цели report).

+0

Я изменил его на значение по умолчанию, но к сожалению, тот же выход – abbath