Я пытаюсь включить сканирование покрытия кода Sonarqube. Я работаю над проектом Maven в Eclipse и уже настроил успешную сборку Jenkins, включая Sonar-scan.
Мне уже удалось использовать Jacoco локально; Я добавил плагин Jacoco в pom.xml и выполнил его jacoco:prepare-agent test jacoco:report
через Run As-> Maven build...
. После этого звонка были расположены отчеты в формате html, target\site\jacoco
и они кажутся правильными.
Теперь мне нужно заставить его работать в Jenkins, но я не знаю, как правильно настроить сборку. В настоящее время выполняются цель maven clean package -fae
и Invoke Standalone Sonar Analysis
этап сборки. Я обнаружил, что sonar.jacoco.reportPath
необходимо установить, но я не знаю, где это установить или где вызвать jacoco:report
цель. Также я не уверен, нужно ли мне добавить плагин jacoco к jenkins, или этого достаточно в проекте maven.
Любая помощь приветствуется, также, пожалуйста, дайте мне знать, если я могу что-то сделать, чтобы улучшить свой вопрос.
Наконец-то я заставил это работать. Если у кого-то есть похожие проблемы, я публикую свое решение здесь:
В Jenkins необходимо настроить свойства sonar.junit.reportsPath и sonar.jacoco.reportPath. В Jenkins не нужно выполнять никаких дополнительных задач.
В проектах pom.xml необходимо указать
<properties>
<jacoco-maven-plugin.version>0.7.4.201502262128</jacoco-maven-plugin.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<versionRange>(,0.7.4.201502262128]</versionRange>
<goals>
<goal>prepare-agent</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Цель prepare-agent
должна быть достигнута, но сначала создается
Выполнение подключаемого модуля типа местоположения пути к ресурсам, не охватываемое конфигурацией жизненного цикла
Чтобы решить эту проблему, необходим pluginManagement
блок, поскольку он игнорирует предстоящие проблемы. Здесь очевидно для использования versionRange
и не только version
, также требуется эта конкретная версия, более поздние версии здесь не работают.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения