У меня есть многомодульный Java-проект со следующей конфигурацией (упрощенно):

sonar.java.binaries=classes
sonar.java.test.binaries=classes
sonar.java.libraries=../**/*.jar, ../../**/*.jar, ../../../**/*.jar
sonar.java.test.libraries=../**/*.jar, ../../**/*.jar, ../../../**/*.jar

sonar.tests=testsrc
sonar.sources=src

sonar.modules=moduleA, moduleB, moduleC

moduleA.sonar.projectBaseDir=project/moduleA
moduleB.sonar.projectBaseDir=project/subfolder/moduleB
moduleC.sonar.projectBaseDir=project/subfolder/anothersubfolder/moduleC

Все модули зависят друг от друга (например, moduleA использует классы из moduleB, использует классы из moduleC)

Теперь я получаю следующее предупреждение:

The following classes needed for analysis were missing:
....
....

Я решил проблему, добавив недостающие папки двоичных файлов для модулей, например.

moduleA.sonar.java.binaries=classes, ../subfolder/moduleB/classes, ../subfolder/anothersubfolder/moduleC

Но поскольку мой проект состоит из МНОГИХ модулей (почти 100), я не хочу добавлять каждый зависимый модуль вручную

Что я здесь делаю не так?

Я использую SonarQube 7.1 и SonarQube Scanner 2.6.1

0
Christoph Forster 15 Май 2018 в 14:10

1 ответ

Лучший ответ

мой проект состоит из МНОГИХ модулей (почти 100), я не хочу добавлять каждый зависимый модуль вручную

Что я здесь делаю не так?

В комментариях мы установили, что вы используете ванильный сканер SonarQube для анализа проекта Gradle. ... Это то, что вы делаете неправильно.

Будет ли работать сканер vanilla в проекте Gradle? Конечно. Теперь работает.

Но, как вы обнаружили, вам придется вручную настраивать все макеты, о которых Gradle уже знает. Если вы не хотите выполнять такую ​​настройку для 100 модулей, вам следует изучить Анализ с помощью сканера SonarQube для Gradle

0
Community 20 Июн 2020 в 09:12