SonarQube Виключіть каталог


132

Я намагаюся виключити каталог, який не аналізуватиме Сонар. У моєму 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 не аналізувати тестовий каталог та будь-які пакети всередині нього.


3
Я знайшов рішення: sonar.excitions = test / ** / *. Java
user1982350

Але якщо ви хочете уникнути тестового аналізу, ви можете спробувати, наприклад, mvn clean package -DskipTests
Eddú Meléndez

Відповіді:


121

Спробуйте щось подібне:

sonar.exclusions=src/java/test/**

4
Переконайтеся, що використовуйте шаблон мурашиного файлу Glob для макіяжів. Ось гарне пояснення: stackoverflow.com/a/86915/748524
Стефан

Ось визначення параметрів командного рядка docs.sonarqube.org/display/SONAR/…
N0dGrand87

4
Кожен, хто бачить це, переконайтеся, що у вас src/test/javaзамість цього src/java/test/.
Фараз

Як виключити методи в c #
nature vetri

Важливо зауважити, що це не трактується як регулярний вираз і застосовується протягом усього проекту sonar.exclusions=node_modules/**НЕ виключає вкладених папок node_modules, що вам потрібно буде зробити, sonar.exclusions=node_modules/**, /some/path/to/nested/node_modules/**щоб явно їх виключити
Christian

68

Я можу виключити декілька каталогів за допомогою наведеного нижче конфігу (контури папки, розділені комами):

sonar.exclusions=system/**, test/**, application/third_party/**, application/logs/**

І під час запуску сонарного бігуна я отримав у журналі таке:

Excluded sources: 
  system/**
  test/**
  application/third_party/**
  application/logs/**

18
Я також отримую виключене повідомлення, але файли все ще аналізуються.
Себас

в параметрах Teamcity я використав ваш наконечник, але вставляючи -D раніше (-Dsonar.exclu ...). Тут працює. :-)
Масьєль Бомбонато

Як виключити зі сканування тут усі файли * .html? Спробував це, sonar.exclusions=**/bin/**,*.htmlале він все ще займає html-файли також під час сканування. Файли Html - це всі підпапки в декількох місцях, і додавання тут на рівні підпапок із фактичною картою шляху буде більше роботи. Чи є спосіб, щоб ми могли виключити всі * .specific_file_type зі сканування?
Еламуруган


13

Якщо ми хочемо пропустити всю папку, можна використовувати наступне:

sonar.exclusions=folderName/**/*

І якщо у нас є лише один конкретний файл, просто дайте повний шлях.

Вся папка, яку потрібно виключити та додати тут.


2
Яка різниця між цією відповіддю та sonar.exclusions=folderNameі sonar.exclusions=folderName/**? Спасибі
Payne

* - Зрівняти нуль або більше символів ** - Зрівняти нуль чи більше каталогів? - Матч одного персонажа
Керті Бандара

12

Інший варіант конфігурації - додавання властивостей Maven sonar.exclusions. Нижче наведено зразок пам’ятного файлу з виключеннями статичного каталогу 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>


7

Найпростіший спосіб - перейти до URL-адреси сервера після запуску сервера (localhost: 8080), після чого увійдіть як адміністратор, перейдіть до налаштувань> Виключення> Виключення вихідного файлу - додайте сюди свої пакунки. Перезавантажте сервер.


2

яку версію сонару ви використовуєте? Є один варіант, який називається " sonar.skippedModules = вашемодуль ".

Це пропустить весь модуль. Тож пам’ятайте про це.


12
ПОПЕРЕДЖЕННЯ - властивість 'sonar.skippedModules' застаріла з версії 4.3 і більше не повинна використовуватися.
Чжен Кай

1

Відзначимо, що як тільки ви виключили файли з Sonar, зробіть те ж саме для плагіна Jacoco:

<configuration>
<excludes>     
<exclude>com/acme/model/persistence/entity/TransactionEntity*</exclude>
<exclude>com/acme/model/persistence/ModelConstants.class</exclude>
</excludes>
</configuration> 

1

Додайте розділені комами шляхи до папки sonar.exclusions=**/abc/**,**/def/**

Це працювало в кутовому проекті


1

Якщо ви користувач Azure DevOps, який шукає як і де виключати файли та папки, тут:

  1. Відредагуйте трубопровід
  2. Переконайтеся, що у вас додано завдання "Підготувати аналіз на SonarQube". Вам потрібно буде шукати в іншому місці, якщо вам потрібна допомога в налаштуванні цього. Пропозиція: Використовуйте редактор конвеєрного інтерфейсу проти редактора yaml, якщо у вас відсутнє посилання управління. В даний час немає можливості перетворити на інтерфейс з ямлу. Просто відтворіть трубопровід. Якщо ви використовуєте git, ви можете видалити ямл з кореня репо.
  3. У розділі «Додатково» завдання «Підготувати аналіз 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, переглянути свій проект, переглянути всі або нові "Code Запахи", і потрібний вам шлях перелічено вище кожної групи питань. Ви можете схопити повний шлях до файлу або використовувати диві природи, як ці приклади:

  • MyProjectName / MyCodeFile.cs
  • MyProjectName / **

Якщо у вас немає завдання "Запустити аналіз коду", зробіть це і поставте його десь після завдання "Зробити рішення ** / *. Sln".

Збережіть і черга, а потім перевірте свій сервер sonarqube, щоб перевірити, чи спрацювали виключення.


0

додайте цей рядок у файл sonar-project.properties

Наприклад: sonar.excitions = src / *. Ява, будьте обережні, якщо ви хочете виключити папку, а всередині папки є файл. Ви повинні спочатку виключити файли або додати файли один за одним, наприклад, уявіть, що є папка, як нижче :

src/app.java src/controllers/home.java src/services/test.java

Ви повинні зробити це: sonar.exclusions=src/app.java,src/controllers/*.java,src/services/*.java

Це працювало для мене


0

Ви можете зробити те ж саме і з build.gradle

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java"
  }
}

І якщо ви хочете виключити більше файлів / каталогів, виконайте вказані нижче дії.

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java, **/src/java/main/**/*.java"
  }
}

-1

Це працювало для мене:

sonar.exclusions=src/**/wwwroot/**/*.js,src/**/wwwroot/**/*.css

Він виключає будь-які файли .js та .css в будь-якому з підкаталогів папки "wwwroot", що є одним із підкаталогів папки "src" (корінь проекту).


Це, мабуть, суттєво не відрізняється від інших відповідей. Він використовує подвійні зірки подвійних зірок, як і багато інших відповідей. Це не відповідає тому, що питання намагалося виключити.
Стівен Остерміллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.