java 禁用实体、DTO包上的Sonar复制

vcirk6k6  于 2023-01-19  发布在  Java
关注(0)|答案(4)|浏览(152)

有什么方法可以在Sonar中禁用选定包中的某些指标吗?我使用Sonar来分析我的项目,在Entity和DTO包中,我有一些相同的代码-带有注解的相同字段ID,等被声纳报告为重复。它对我来说完全没有意义,所以我想禁用它。我如何才能实现这一点?使用全局排除选项会禁用所选软件包上的所有指标,但如何仅针对代码重复执行此操作?

hpxqektj

hpxqektj1#

对我来说,它的作品:

<sonar.cpd.exclusions>
  com.simulate.java.dto\**
<\sonar.cpd.exclusions>

我有多个模块的Java项目就像这样:

- parent
--  project-a
--  project-b
--  project-c

在标签<properties>内父项目的pom.xml中,我放入:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>

        <sonar.cpd.exclusions>
                com.simulate.java.vo\**,
                com.simulate.java.dto\**
        <\sonar.cpd.exclusions>
<\properties>

就这样。希望我帮到你了。

sr4lhrrt

sr4lhrrt2#

您可以将这些文件添加到 pom.xml 中的属性:

此选项用于从代码覆盖范围中排除:

<sonar.coverage.exclusions>
  your file paths
</sonar.coverage.exclusions>

此选项用于排除代码重复:

<sonar.cpd.exclusions>
  your file paths
</sonar.cpd.exclusions>
fdbelqdn

fdbelqdn3#

使用较新的SonarQube安装,您可以使用sonar.cpd.exclusions仅从重复检查中排除某些文件。https://docs.sonarqube.org/latest/analysis/analysis-parameters/
示例:

sonar.cpd.exclusions=**/AssemblyInfo.cs,**/*.g.cs,**/Mappings/*.cs
xiozqbni

xiozqbni4#

您可以使用标准"sonar.exclusions"参数排除资源,也可以使用Switch Off violation plugin排除“重复代码”冲突。
注意,第二个选项(使用关闭插件)仅在使用SQALE plugin时有效,SQALE plugin嵌入了“sqale-java:DuplicatedBlocksCheck”规则。

相关问题