跳过SonarQube模块的代码覆盖范围

问题描述 投票:2回答:2

我使用SonarQube分析了Maven的Java项目构建。每个项目都包含几个Maven模块,比方说:

  • org.acme.module - API
  • org.acme.module.demo - 一个演示此模块功能的小型演示应用程序
  • org.acme.module.doc - 开发人员的文档
  • org.acme.module.it - 集成测试

在理想的世界中,我想分析所有这些模块的代码质量,但仅计算API的测试覆盖率。

但是我找不到从代码覆盖中禁用整个项目的方法(sonar.coverage.exclusions只过滤类名,其中一些模块与API共享一个包),所以现在我试图从Sonar中禁用这些模块。

我试过了:

<properties>
    <sonar.skippedModules>org.acme.module.demo,org.acme.module.doc,org.acme.module.it</sonar.skippedModules>
</properties>

哪个有效,但是有很多工作,因为我有数百个这样的项目。

<properties>
    <sonar.skip>true</sonar.skip>
</properties>

也适用,但我必须为每个子模块定义它。此外,现在Sonar不会分析文件,这是显而易见的原因。

我宁愿有类似<excludedModules>*demo*,*doc*,*it*,<excludedModules>的东西,我可以在父pom.xml中定义一次并在所有这些模块中使用。

This answer说:

您也可以从声纳模块部分here中记录的声纳管理页面执行此操作。

我很高兴片刻,直到我意识到SonarQube文档不再包含“跳过模块”部分。或许它被移动了,我找不到它。

如何在运行其他Sonar测试的同时跳过多个模块中的代码覆盖率分析?

或者,如果那不可能,如何以通用方式跳过Sonar中的这些模块?

java sonarqube sonarqube-scan
2个回答
0
投票

以管理员身份登录

转到您的项目,您应该看到“管理”选项卡。然后转到分析范围,然后在覆盖范围排除中添加您的排除:

  • 的src / main / JAVA /组织/ ACME /模块/演示/ **

enter image description here


0
投票

在所有子/子模块pom中,您可以添加类似下面的内容,仅从覆盖率分析中排除该模块中的所有文件。您仍将获得这些模块的其余SonarQube分析。

 <profiles>
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.coverage.exclusions>
                **/*.*
            </sonar.coverage.exclusions>
        </properties>
    </profile>
    </profiles>
© www.soinside.com 2019 - 2024. All rights reserved.