Настройка Sonar для исключения файлов из Maven pom.xml
У меня есть проект, сконфигурированный в maven, и анализ кода выполняется SonarQube.
Я пытаюсь настроить SonarQube в файле pom.xml, чтобы исключить несколько файлов из анализа кода. Эти файлы могут быть идентифицированы по их именам классов, они содержат символ подчеркивания перед расширением (они являются классами метамодели). Ниже я предоставляю часть файла pom.xml, где я пытаюсь их исключить:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<sonar.sources>src/main/java</sonar.sources>
<sonar.exclusions>file:**/src/main/java/**/*_.*</sonar.exclusions>
</configuration>
</plugin>
Однако приведенный выше код не работает. Есть ли способ настроить SonarQube из моего файла pom.xml, чтобы игнорировать эти файлы при анализе исходного кода?
Спасибо заранее.
Ответы
Ответ 1
Исключения сонара (как и другие свойства сонара) должны быть добавлены в раздел <properties>
файла POM. Как и так (пример из исключения jOOQ автоматически генерируемого кода из текущего проекта):
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.host.url>http://www.example.com/</sonar.host.url>
<sonar.jdbc.url>jdbc:postgresql://www.example.com/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.exclusions>org/binarytherapy/generated/**/*, **/GuiceBindComposer.java</sonar.exclusions>
<sonar.dynamic>reuseReports</sonar.dynamic>
</properties>
Ответ 2
классы/пакеты, упомянутые в <sonar.exclusions>
, исключают данные классы из всего статического анализа Sonar, однако <sonar.coverage.exclusions>
исключает данные классы/пакеты только из охвата и все еще анализируется для других параметров.
<properties>
<sonar.coverage.exclusions>
**/domain/**/*,
**/pojos/*
</sonar.coverage.exclusions>
</properties>
Ссылка:
Источник: