sonar-maven-plugin执行sonar扫描(二)

使用sonar-maven-plugin插件执行sonar扫描(一)留下一个问题:

实测,即使没有配置jacoco插件,插件可以自动分析单测的测试结果(mvn test?),可以看到覆盖率。目前我还清楚依赖的最小环境是怎样的?

实测的环境没有梳理清楚。

不包含Jacoco插件的场景——

    1. mvn clean清理环境
    1. 执行mvn test 确保完成编译并执行了测试maven-surefire-plugin:2.22.2:test

此时target目录如上图。

    1. 执行 sonar:sonar结果将不包含覆盖率信息

包含Jacoco插件的场景(Jacoco插件于test阶段绑定)——

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.5</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <!-- attached to Maven test phase -->
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

执行上述相同的三个步骤,则包含了覆盖率。

第二步结束时可以看到target文件夹下多出site 文件夹和 jacoco.exec文件。

结论:

SonarQube上展示的覆盖率依赖Jacoco插件的配合。

附录:

  • 使用 mvn help:effective-pom可以看到当前项目完整的pom相关配置
  • 使用mvn dependency:treee可以看到当前项目的依赖关系
  • pluginManagement用来配置管理所有的plugin信息,用来提供给其他集成当前项目的项目使用,当前项目使用的plugin依然需要配置到plugins节点中。官方解释Plugin_Management,对应的提问
  • dependencyManagement于此类似。dependency-management
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容