我已经可以通过在POM文件的标记中添加这个来排除带有声纳立方体报告的类。
<properties>
<java.version>1.8</java.version>
<sonar.exclusions>
/src/main/java/com/example/org/test/mainpackage/message/**/*
,
/src/main/java/com/example/org/test/mainpackage/security/jwt/**/*
,
/src/main/java/com/example/org/test/mainpackage/security/services/**/*
,
/src/main/java/com/example/org/test/mainpackage/controller/AuthRestAPIs.java
,
/src/main/java/com/example/org/test/mainpackage/controller/TestRestAPIs.java
</sonar.exclusions>
</properties>
然而,当在本地运行相同的代码来测试代码覆盖率时,根本不起作用。
我在哪里用Maven和Sping Boot 编程设置这个?.
我已经可以通过
设置>构建、执行、部署>排除> [要排除的类]
或通过
编辑配置>选择代码覆盖率选项卡>然后添加我希望在代码覆盖率报告中排除或仅包括的包或类。
我想要的是编码的类被排除,即在pom文件中,就像我做的那样,排除了sonar qube的代码。
长话短说。我如何以编程方式做到这一点?.
我之所以想以编程方式实现这一点,是因为我在代码覆盖率报告中排除文件的上述两个步骤是,我的项目中没有任何文件可以推送到存储库中,因此我为排除所做的更改将反映在所有从git存储库中拉取的文件中。没有文件或配置添加,我可以推和反映到所有的仓库。这意味着我的排除将只在本地工作,而不是对其他工作。对吗?。所以我在这里要求一种方法来做编程一样,把排除在一个POM文件。
5条答案
按热度按时间dsekswqp1#
当您使用Maven时,您需要在jacoco插件中配置排除项,该插件用于捕获覆盖率统计数据并将其传递给sonar。
参考文献:
kpbwa7wx2#
这不是我真正想要的答案。但现在这对我来说就够了。仍然在寻找一种通过pom文件,java或bean来实现这一点的方法。谢谢
解决方案:
因此,如果您在项目的“运行配置”中进行了排除。这是我在问题中提到的第二步,即通过
编辑配置>代码覆盖率。
然后实际上添加您的排除。您只需勾选共享文本框并单击应用。您所做的排除将在您的项目目录下提供
.idea/runConfigurations/[您所做的排除和其他运行配置的xml文件]。
为了能够推动这个,只要移除
.idea在你的.gitignore文件中。
然后,您就可以将运行配置文件推送到您的存储库中供其他人使用。或导出,这样就不必在intellij的编辑配置中手动配置。
PS:这可能会影响您的Sonarqube中的覆盖报告。你必须撤销这一点,并从你的存储库中取消本地运行配置,以便能够使用你的sonar qubes类排除。出于某种原因,在我的,它跳过了所有的排除我做这之前。
cyej8jka3#
在
application.properties
中,您可以执行以下操作:此外,其他方式将登录为管理员在声纳和去
设置>排除>源文件排除-在此处添加您的软件包。重新启动服务器。
tpxzln5u4#
默认情况下,Intellij使用Intellij IDEA作为默认的代码覆盖率运行器。
如果您使用的是
jacoco
,则将此选项更改为JaCoCo
。详情请访问jetbrains
网站。https://www.jetbrains.com/help/idea/configuring-code-coverage-measurement.html按照上面的步骤,
<sonar.coverage.exclusions>
中定义的所有排除类都将被考虑在内,并与远程SonarQube
服务器配置中的类匹配。fslejnso5#
从JaCoCo 0.8.2开始,你可以使用注解来从覆盖范围中排除类或方法。
注解的名称应包括Generated。注解的保留策略应为运行时或类。
如果你使用lombok项目,只需要使用来自lombok. Generated包的注解@Generated即可。
如果你不使用lombok项目,你可以创建自己的注解。
在创建了这个注解之后,只需要在您想要从覆盖率报告中排除的类或方法上使用它。
来源:https://www.baeldung.com/jacoco-report-exclude