SonarQube, исключая файлы, каталоги и сгенерированный код?

#maven #sonarqube

#maven #sonarqube

Вопрос:

База кода, с которой я работаю, содержит много сгенерированного кода. Кроме того, есть также некоторые устаревшие файлы, которые я хотел бы исключить из анализа SonarQube. Я прочитал документацию и просмотрел некоторые ответы здесь по этому поводу, но в моем случае это не помогает.

У меня многомодульный проект maven. Итак, у меня в рабочей области есть несколько проектов, которые являются частью большого приложения. Допустим, я хочу исключить этот файл:

/home/username/workspace/com.mst.rtra.importing.message/bin/com/mst/rtra/importing/message/idl/parse/idlparser.java

Я действительно не знаю, как написать это в настройках исключений в SonarQube из-за длины пути к файлу. Кроме того, что делать, если я хочу исключить другой файл, но из другого модуля, скажем :

/home/username/workspace/com.mst.rtra.interpreter.create/

Я смущен тем, что я должен написать это в поле исключения в настройках проекта. Должен ли я писать абсолютный путь к файлу из-за многомодульного характера этого проекта? Или используется какое-то другое соглашение?

Кроме того, если я хочу исключить сгенерированные файлы из анализа, мне нужно будет указать file:/generated-sources/ , как я видел в другом ответе. Однако после анализа я все равно могу просмотреть результаты анализа этих файлов, когда я открываю проект на панели инструментов SonarQube.

Ответ №1:

Мы используем ant, а не maven, и при этом более старую версию задачи Sonar ant. Но что работает для нас, так это установка свойства sonar.exclusions в нашем build.xml , который принимает подстановочные знаки для имен файлов. Например:

 <property name="sonar.exclusions" value="**/com/ex/wsdl/asvc/*.java,**/com/ex/wsdl/bsvc/*.java"/>
 

Это пропускает анализ всего кода, сгенерированного из файла wsdl для двух служб. Вы должны быть в состоянии сделать что-то подобное для maven.