Покрытие кода не заполняется после анализа сонара
Я использую sonarqube5.6.1.
У меня есть многомодульный проект, для которого я выполняю гидролокаторный анализ с помощью приведенной ниже команды.
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar -Dsonar.host.url=http://bamboo.in.XXX.com:8085 -Dsonar.analysis.mode=publish -Dsonar.issuesReport.html.enable=true -Dsonar.dynamicAnalysis=false
Но охват кода вообще не заполняется.
Может ли кто-нибудь помочь. Я мог видеть нижеприведенные предупреждения, Не уверен, что это причина.
[INFO] Process project properties
[WARNING] /!\ A multi-module project can't have source folders, so '/ssdd5/sameenud/dev/trunk/AAAA/BBBB/CCCC/DDDD/src/main/java' won't be used for the analysis. If you want to analyse files of this folder, you should create another sub-module and move them inside it.
Структура папок у нас такая, как показано ниже,
AAAA
--BBBB
pom.xml
---CCCC
pom.xml
---DDDD
pom.xml
Я попытался скомпилировать его вручную, но не повезло, та же проблема.
2 ответа
У меня была похожая проблема, охват 0, 0% и отсутствие подсчета юнит-тестов на приборной панели Sonar с SonarQube 6.7.2: Maven: 3.5.2, Java: 1.8, Jacoco: Работал с 7.0/7.9/8.0, ОС: Windows
После многих попыток найти правильное решение, проблема с этой конфигурацией выглядит так:
<properties>
<!--Sonar -->
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.language>java</sonar.language>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.4.0.905</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
Я пробовал несколько других опций, таких как jacoco-aggregate и даже создавал субмодуль, включив его в родительский pom, но ничего не получалось, и это просто. Я вижу в логах <sonar.jacoco.reportPath>
устарела, но все еще работает как есть и выглядит как автоматически заменяемая при выполнении или может быть вручную обновлена до <sonar.jacoco.reportPaths>
или последний. Однажды после установки, в cmd начните с mvn clean install, затем mvn org.jacoco: jacoco-maven-plugin: prepare-agent install и затем выполните mvn sonar: sonar, это то, что я пробовал, пожалуйста, дайте мне знать, если какой-то другой лучшее возможное решение доступно. Надеюсь, что это помогает! Если нет, пожалуйста, оставьте свой вопрос..
SonarQube (а точнее анализатор SonarJava) не вычисляет покрытие. Вы должны предоставить отчет о покрытии, чтобы анализ импортировал его результаты в пользовательском интерфейсе SonarQube и отобразил покрытие.
См. Документацию для получения дополнительной информации о том, как этого добиться.