Сонар Отчет + мультимодуль maven + плагин Jacoco

Я новичок в сонар. У меня есть мультимодульный проект Maven. пожалуйста, найдите структуру проекта ниже

-Parent
| -Module A
    |
     -pom.xml (Module A) 
| -Module B
    |
     -pom.xml (Module B)
| -Module C
|   |
|    -pom.xml (Module C)
|
--pom.xml (parent pom)   

Примечание: (Модуль C является общим модулем в модуле A/ модуле B - означает, что внутренний модуль C войдет в состав модуля A, библиотеки модуля B) Исходя из требований проекта, мы имеем следующую структуру.

  1. Модуль А - работает для внешних пользователей.
  2. Модуль Б - работает для внутренних пользователей.
  3. Модуль C - общий ч / б как модуль.

    Я пытаюсь создать один и тот же гидролокатор для обоих модулей, но не могу объединить весь отчет о модульном модуле (отчет о модуле A и модуле B) в один отчет. Я выполнил несколько примеров, чтобы объединить объект muti-module maven но ничего не работает.

похожая проблема1 похожая проблема2
github-пример (ссылка дана в сонаре)

2 ответа

Решение

Я могу добиться интеграционного тестирования с помощью сонара с плагином Jococo. Чтобы запустить Sonar на местном уровне, я столкнулся с проблемой ошибки SCM в сонаре. Каждый раз, когда это не удавалось в создании отчета сонара. Для решения проблемы в локальной сети необходимо отключить настройку SCM в гидролокаторе. войдите в локальный гидролокатор от имени администратора - admin/admin (имя пользователя / пароль по умолчанию). Теперь в настройках у нас есть вкладка SCM - отключить SCM Senor и сохранить настройки SCM.

Окно настройки сонара

Теперь в Dashboard -> Настройка виджетов. Поиск "Покрытие интеграционных тестов"

Теперь добавьте виджет в вашу панель проекта.

Следуйте той же конфигурации в вашем pom.xml, как указано в ссылке.

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it/combined-ut-it-multimodule-maven-jacoco

У меня была похожая проблема с более чем 40 модулями, которые были даже вложенными. Что вам нужно сделать, это создать целую конфигурацию сонара в родительском поме.

<sonar.host.url>set url here (default is localhost)</sonar.host.url>
<sonar.login>user for host url (default admin)</sonar.login>
<sonar.password>password for host url (default is admin)</sonar.password>
<sonar.projectName>optional name for whole project in sonar view</sonar.projectName>
<sonar.projectDescription>optional project description for sonar view</sonar.projectDescription>
<sonar.projectBaseDir>like name says you can set project base dir, if you have parent pom as a separate module then you can type ".." to set main directory with all modules</sonar.projectBaseDir>

Установите правильно все модули, которые будут проанализированы отдельно для всего проекта:

<sonar.modules>module1, module2, module3</sonar.modules>

Настройте каждый из них правильно:

<module1.sonar.projectName>module1</module1.sonar.projectName>
<module1.sonar.projectBaseDir>module1/</module1.sonar.projectBaseDir>
<module1.sonar.sources>optionally set sources to proper directory for example src/main/java</module1.sonar.sources>

<!-- similiar for other 2 projects -->

Таким образом, все отчеты Junit будут использоваться для каждого модуля, но будут перечислены в одном проекте с модулями. Таким образом, вы сможете просматривать отчеты по модулям и по всему проекту.

Рекомендуется проверять результаты после добавления каждого отдельного модуля. В случае сбоя просто проверьте ошибку в консоли и устраните проблему.

Другие вопросы по тегам