Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 排除在pom.xml中为jacoco配置的文件,并排除sonar中的文件_Java_Maven_Sonarqube_Code Coverage_Jacoco - Fatal编程技术网

Java 排除在pom.xml中为jacoco配置的文件,并排除sonar中的文件

Java 排除在pom.xml中为jacoco配置的文件,并排除sonar中的文件,java,maven,sonarqube,code-coverage,jacoco,Java,Maven,Sonarqube,Code Coverage,Jacoco,我有一个Java Multi-maven项目,我为每个子模块配置了Jacoco maven插件,以排除我不想要覆盖率报告的文件。 我认为我成功了,因为我没有看到我在jacoco生成的html报告中排除的这些文件。 我假设这些类文件已从jacoco.exec文件中排除。 现在我在SonarQube中使用这些累积的jacoco.exec文件,我看到了所有子模块的覆盖率,但是当我在类详细信息中输入时,我再次看到了我定义要排除的类。 所以我必须用sonar.Exclutions属性再次定义这些排除项,以

我有一个Java Multi-maven项目,我为每个子模块配置了Jacoco maven插件,以排除我不想要覆盖率报告的文件。 我认为我成功了,因为我没有看到我在jacoco生成的html报告中排除的这些文件。 我假设这些类文件已从jacoco.exec文件中排除。 现在我在SonarQube中使用这些累积的jacoco.exec文件,我看到了所有子模块的覆盖率,但是当我在类详细信息中输入时,我再次看到了我定义要排除的类。 所以我必须用sonar.Exclutions属性再次定义这些排除项,以避免在sonar中看到它们

对于jacoco:

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>**/*JavaProjectApiModule.class</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
  </build>

org.jacoco
jacocomaven插件
**/*JavaProjectApiModule.class
对于我在父pom.xml中配置的Sonar,在属性部分:

<sonar.exclusions>
        **/JavaProjectApiAModule.java
</sonar.exclusions>

**/JavaProjectApiAModule.java
我认为,一旦我使用jacoco配置排除它们,它们将不会添加到jacoco.exec文件中,反过来也不会显示在sonar中。。 但现在看来,我将不得不保留jacoco和sonar配置的排除项,如果来自不同模块的类

我是不是遗漏了什么?这是路吗?将jacoco排除在声纳之外


提前谢谢

sonar.Exclutions
参数定义扫描仪应该对哪些文件进行ommit。这意味着这些文件不会显示在SonarQube中

在测试执行期间,JaCoCo代理将跳过从JaCoCo报告中排除的文件


当扫描仪扫描JaCoCo报告中未包含的文件时,这些文件将显示在SonarQube中,但没有代码覆盖信息。当扫描仪忽略文件(其路径与sonar.Exclutions匹配)时,它们不会显示在SonarQube中-无论它们是否包含在JaCoCo报告中。

你好,agabrys!谢谢你的解释!顺便说一句,我也在SAP中工作:)我注意到,如果我从jacoco而不是sonar中排除文件,我会看到覆盖率为0%的文件,这会降低总体覆盖率。。。所以我想一个好的做法是只为声纳保留一个排除列表…我不确定这是否是一个好的做法。我认为一个更好的选择是将所有应该忽略的文件放在一个特定的目录中,例如
遗留代码
gen src
等。因为您可以简单地忽略目录
遗留代码/**
中的整个文件。如果您无法更改文件结构,并且只想保留一个列表,那么您没有任何选择;)是的,也许我不知道:)非常感谢你的帮助!