SonarQube Исключить каталог
Я пытаюсь исключить каталог из анализа Sonar. У меня есть следующие свойства, определенные в моем sonar-project.properties
файл:
sonar.sources=src/java
sonar.exclusions=src/java/test/****/*.java
У меня есть структура каталогов:
src/java/dig
src/java/test/dig
Когда я запускаю гидролокатора, я получаю следующую информацию:
INFO - Excluded sources:
INFO - src/java/test/**/*.java
INFO - Excluded tests:
INFO - **/package-info.java
Но когда я проверяю результат анализа, все пакеты внутри тестового каталога все еще там.
Мне просто нужно сказать Sonar не анализировать тестовый каталог и любые пакеты внутри него.
16 ответов
Попробуйте что-то вроде этого:
sonar.exclusions=src/java/test/**
Я могу исключить несколько каталогов, используя приведенный ниже конфиг (пути к папкам через запятую)
sonar.exclusions=system/**, test/**, application/third_party/**, application/logs/**
И во время работы гидролокатора я получил следующее в журнале
Excluded sources:
system/**
test/**
application/third_party/**
application/logs/**
Это будет работать для вашего случая:
sonar.exclusion =**/src/java/dig/ **, **/src/java/test/dig/ **
Если мы хотим пропустить всю папку, можно использовать следующее: sonar.exclusion =folderName/**/* И если у нас есть только один конкретный файл, просто укажите полный путь.
Вся папка, которую нужно исключить и добавить сюда.
Пробовал это. Работает для меня!
Другой вариант конфигурации - добавление свойств maven. sonar.exclusions
, Ниже приведен пример pom-файла с исключениями статического каталога jquery и статического каталога просмотра PDF.
<project >
<modelVersion>4.0.0</modelVersion>
<artifactId>my Artifact</artifactId>
<!-- Enviroment variables can be referenced as such: ${env.PATH} -->
<packaging>war</packaging>
<url>http://maven.apache.org</url>
<properties>
<junit.version>4.9</junit.version>
<mockito.version>1.9.5</mockito.version>
<jackson.version>1.9.7</jackson.version>
<powermock.version>1.5</powermock.version>
<!--Exclude the files Here-->
<sonar.exclusions>src/main/webapp/static/jquery_ui/*,src/main/webapp/static/pdf-viewer/*,src/main/webapp/static/pdf-viewer/**,src/main/webapp/static/pdf-viewer/**/*</sonar.exclusions>
</properties>
Если вы пользователь Azure DevOps и ищете, где и как исключить файлы и папки, то вот вам:
- Отредактируйте свою воронку
- Убедитесь, что у вас добавлена задача "Подготовить анализ в SonarQube". Вам нужно будет поискать в другом месте, если вам понадобится помощь в настройке этого. Предложение: используйте редактор конвейера пользовательского интерфейса, а не редактор yaml, если вам не хватает ссылки управления. В настоящее время нет возможности конвертировать в UI из yaml. Просто воссоздайте конвейер. Если вы используете git, вы можете удалить yaml из корня вашего репо.
- В разделе "Дополнительно" задачи "Подготовка анализа в SonarQube" вы можете добавить исключения. См. Советы других для конкретных форматов исключения.
Пример:
# Additional properties that will be passed to the scanner,
# Put one key=value per line, example:
# sonar.exclusions=**/*.bin
sonar.exclusions=MyProjectName/MyWebContentFolder/**
Примечание. Если вы не уверены на правильном пути, вы можете войти в sonarqube, просмотреть свой проект, просмотреть все или новые "Запахи кода", и нужный путь указан над каждой группой проблем. Вы можете получить полный путь к файлу или использовать дикие символы, подобные этим примерам:
- MyProjectName / MyCodeFile.cs
- MyProjectName / **
Если у вас не добавлена задача "Выполнить анализ кода", сделайте это и поместите ее где-нибудь после задачи "Построить решение **/*. Sln".
Сохраните и поставьте в очередь, а затем проверьте свой сервер sonarqube, чтобы увидеть, сработали ли исключения.
Самый простой способ - перейти по URL-адресу сервера после запуска сервера (localhost:8080), затем войти в систему как администратор, перейдите в настройки> Исключения> Исключения из исходного файла - добавьте свои пакеты здесь. Перезагрузите сервер.
Какую версию сонара вы используете? Есть одна опция под названием "sonar.skippedModules = yourmodulename".
Это пропустит весь модуль. Так что знайте об этом.
Вы можете сделать то же самое с build.gradle
sonarqube {
properties {
property "sonar.exclusions", "**/src/java/test/**/*.java"
}
}
И если вы хотите исключить больше файлов / каталогов, тогда:
sonarqube {
properties {
property "sonar.exclusions", "**/src/java/test/**/*.java, **/src/java/main/**/*.java"
}
}
Я ввел с учетом регистра и использовал "", и это сработало. Время анализа уменьшено с 10 до 3 минут.
# Additional properties that will be passed to the scanner,
# Put one key=value per line, example:
sonar.exclusions=**\Scripts\**\*,**\Content\**\*
Добавить пути к папкам, разделенные запятыми sonar.exclusions=**/abc/**,**/def/**
Это работало в угловом проекте
Вы можете пропустить такую библиотеку
project(":libABC") {
apply plugin: 'org.sonarqube'
sonarqube {
skipProject = true
}
}
Просто упомяните, что, как только вы исключили файлы из Sonar, сделайте то же самое для плагина Jacoco:
<configuration>
<excludes>
<exclude>com/acme/model/persistence/entity/TransactionEntity*</exclude>
<exclude>com/acme/model/persistence/ModelConstants.class</exclude>
</excludes>
</configuration>
Добавьте эту строку в свой файл sonar-project.properties
ex: sonar.exclusions=src/*.java будьте осторожны, если вы хотите исключить папку, а внутри папки есть файл, вы должны сначала исключить файлы или добавить файлы один за другим, например, представьте, что есть папка, как показано ниже:
src/app.java
src/controllers/home.java
src/services/test.java
вы должны сделать это:sonar.exclusions=src/app.java,src/controllers/*.java,src/services/*.java
Это сработало для меня
Как это работает в Sonarqube сейчас
-Dsonar.exclusions=Foodzy.Core/wwwroot/font-awesome/**
или в Дженкинсе
/d:sonar.exclusions=Foodzy.Core/wwwroot/font-awesome/**
Это сработало для меня:
sonar.exclusions=src/**/wwwroot/**/*.js,src/**/wwwroot/**/*.css
Он исключает любые файлы.js и.css в любом из подкаталогов папки "wwwroot", являющиеся одним из подкаталогов папки "src" (корень проекта).