Sonar Report + 多模块 maven + Jacoco 插件

Sonar Report + Multi module maven + Jacoco plugin

我是 Sonar 新手。 我有多模块 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. 模块 A - 适用于外部用户。
  2. 模块 B - 适用于内部用户。
  3. 模块 C -common b/w 两个模块。

    我正在尝试为两个模块创建单个声纳报告,但我无法集成所有模块 junit 报告(模块 A 和模块 B 报告) 进入单个 report.I 遵循几个示例来组合多模块 Maven 项目,但没有任何效果。

similar issue1 similar issue2
github-example(声纳中给出的参考)

我能够使用带有 Jococo 插件的声纳实现集成测试覆盖。 对于 运行 本地的声纳,我遇到了声纳中 SCM 错误的问题。 每次在创建声纳报告时都失败了。 要解决本地问题,您需要禁用声纳中的 SCM 配置。 以管理员身份登录本地声纳 - admin/admin(默认 username/password) 现在在设置下我们有 SCM 选项卡 - 禁用 SCM Senor 并保存 SCM 设置。

现在在仪表板中 --> 配置小部件。搜索 "Integration Tests Coverage"

现在将小部件添加到您的项目仪表板中。

在 pom.xml 中遵循与 link 中相同的配置。

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

我遇到了 40 多个甚至嵌套的模块的类似问题。您要做的是在父 pom.xml 中创建整个声纳配置。

<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 报告都将按模块使用,但它将列在带有模块的单个项目中。这样您就可以查看每个模块和整个单个项目的报告。

最好在添加每个模块后检查结果。如果失败,只需检查控制台中的错误并修复问题。