#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.