У меня есть многомодульный проект Java Maven, который уже использует Findbugs, Checkstyle, PMD и Jacoco для проверки кода. Тесты также проводятся во время этих анализов. Теперь я хотел бы настроить SonarQube для сбора отчетов, сгенерированных при запуске Maven, и отображения их в панели инструментов SonarQube. До сих пор у меня есть эти свойства в моем родительском pom.xml, что я нашел в различных проводок по всему интернету:Интеграция SonarQube с использованием Maven для повторного использования Findbugs, PMD, Checkstyle, Surefire и Jacoco
<properties>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.surefire.reportsPath>${project.parent.build.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.jacoco.reportPath>${project.parent.build.directory}/coverage-reports/${project.artifactId}-jacoco.exec</sonar.jacoco.reportPath>
<sonar.findbugs.reportPath>${project.parent.build.directory}/findbugs/findbugs.xml</sonar.findbugs.reportPath>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
</properties>
Я не изменил конфигурацию плагина Checkstyle, FindBugs, Jacoco или PMD. Я добавил несколько строк в Surefire конфигурации плагина:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<skip>${skip.test}</skip>
<testFailureIgnore>${testFailureIgnore}</testFailureIgnore>
<argLine>${surefireArgLine}</argLine>
<failIfNoTests>${failIfNoTests}</failIfNoTests>
<test>AllTests</test>
<properties>
<property>
<name>listener</name>
<value>org.sonar.java.jacoco.JUnitListener</value>
</property>
</properties>
</configuration>
</plugin>
И вот Sonar плагины:
<plugin>
<groupId>org.codehaus.sonar-plugins.java</groupId>
<artifactId>sonar-jacoco-listeners</artifactId>
<version>${sonar-jacoco-listeners.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
При запуске этого я получаю сообщение «„sonar.dynamicAnalysis“является устаревшим, начиная с версии 4.3 и больше не должны использоваться ». Но я не уверен, что еще использовать. Соответствующая проблема JIRA также не говорит об этом (https://jira.codehaus.org/browse/SONAR-5185) И, кроме того, похоже, что Sonar ничего не набирает из моего пробега Maven. На панели мониторинга отображаются только значения «Линии кода», «Дубликации», «Сложность», «Индекс каталога» и «Успех тестирования блока». Судя по последней записи, по крайней мере, результаты от единичных тестов подбираются.
Я использую Maven 3.2.2, sonar-jacoco-listeners 2.9.1, sonar-maven-plugin 2.5 и SonarQube 4.5.1. Тесты выполняются из задания Дженкинса, используя «mvn -e test».
Любые указатели или справка были бы весьма благодарны. Возможно, то, чего я пытаюсь достичь просто, невозможно и/или выполнимо.
(В ответ на комментарий пользователя944849) Это выход сонара для сборки модуля.
[INFO] [13:39:34.821] ------------- Scan Administration
[INFO] [13:39:34.822] Load module settings
[INFO] [13:39:34.869] Configure Maven plugins
[INFO] [13:39:34.871] Compare to previous analysis (2015-02-25)
[INFO] [13:39:34.872] Compare over 30 days (2015-01-26, analysis of 2015-01-26 05:14:41.328)
[INFO] [13:39:34.873] Compare to previous version (2015-01-16)
[INFO] [13:39:34.874] No quality gate is configured.
[INFO] [13:39:34.889] Initializer FindbugsMavenInitializer...
[INFO] [13:39:34.889] Initializer FindbugsMavenInitializer done: 0 ms
[INFO] [13:39:34.889] Base dir: /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/admin
[INFO] [13:39:34.889] Working dir: /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/admin/target/sonar
[INFO] [13:39:34.889] Source paths: pom.xml, src/main/java
[INFO] [13:39:34.890] Test paths: src/test/java
[INFO] [13:39:34.890] Binary dirs: target/classes
[INFO] [13:39:34.890] Source encoding: UTF-8, default locale: de_DE
[INFO] [13:39:34.890] Index files
[INFO] [13:39:35.112] 544 files indexed
[INFO] [13:39:42.216] Quality profile for java: DEFAULT
[INFO] [13:39:42.276] Sensor JavaSquidSensor...
[INFO] [13:39:42.303] Java Main Files AST scan...
[INFO] [13:39:42.303] 407 source files to be analyzed
[INFO] [13:39:52.304] 245/407 files analyzed
[INFO] [13:39:58.548] 407/407 source files analyzed
[INFO] [13:39:58.549] Java Main Files AST scan done: 16246 ms
[INFO] [13:39:58.566] Java bytecode scan...
[INFO] [13:39:58.895] Java bytecode scan done: 329 ms
[INFO] [13:39:58.896] Java Test Files AST scan...
[INFO] [13:39:58.896] 137 source files to be analyzed
[INFO] [13:39:59.676] Java Test Files AST scan done: 780 ms
[INFO] [13:39:59.676] 137/137 source files analyzed
[INFO] [13:39:59.677] Package design analysis...
[INFO] [13:40:00.767] Package design analysis done: 1090 ms
[INFO] [13:40:00.788] Sensor JavaSquidSensor done: 18512 ms
[INFO] [13:40:00.796] Sensor QProfileSensor...
[INFO] [13:40:00.797] Sensor QProfileSensor done: 1 ms
[INFO] [13:40:00.797] Sensor InitialOpenIssuesSensor...
[INFO] [13:40:00.839] Sensor InitialOpenIssuesSensor done: 42 ms
[INFO] [13:40:00.839] Sensor ProjectLinksSensor...
[INFO] [13:40:00.843] Sensor ProjectLinksSensor done: 4 ms
[INFO] [13:40:00.843] Sensor VersionEventsSensor...
[INFO] [13:40:00.850] Sensor VersionEventsSensor done: 7 ms
[INFO] [13:40:00.850] Sensor FileHashSensor...
[INFO] [13:40:00.863] Sensor FileHashSensor done: 13 ms
[INFO] [13:40:00.863] Sensor SurefireSensor...
[INFO] [13:40:00.863] parsing /mnt/jenkins/jobs/nightlybuild_UVDS_BTH/workspace/trunk/uvds-admin/target/surefire-reports
[INFO] [13:40:00.920] Sensor SurefireSensor done: 57 ms
[INFO] [13:40:00.921] Sensor Maven dependencies...
[INFO] [13:40:01.086] Sensor Maven dependencies done: 165 ms
[INFO] [13:40:01.090] Sensor CPD Sensor (wrapped)...
[INFO] [13:40:01.090] JavaCpdEngine is used for java
[INFO] [13:40:01.101] Cross-project analysis disabled
[INFO] [13:40:02.295] Sensor CPD Sensor (wrapped) done: 1205 ms
[INFO] [13:40:02.432] Execute decorators...
Существуют ли отчеты в настройках местоположения? Кроме того, вы проверили вывод консоли Jenkins для сборки, чтобы узнать, что делает SonarQube? У него могут быть сообщения о том, что вы не находите файлы в сконфигурированном каталоге или не имеете их в неправильном формате или что-то в этом роде. – user944849