SonarQube在分析中的项目之外的其他项目中重复代码时会添加重复项

SonarQube在分析中的项目之外的其他项目中重复代码时会添加重复项,sonarqube,sonarqube-web,Sonarqube,Sonarqube Web,我有一组项目,它们有很多共同的代码。SonarQube显示高比例的重复。当我查看每个文件的复制时,复制代码上的引用指向代码相同的其他项目代码。有没有办法让复制只针对同一个项目运行?默认情况下,SonarQube在4个级别检测复制: 在源文件中 跨项目中的多个文件 跨项目的各个模块 跨多个项目 您可以全局或在项目级别关闭最后一个选项:管理>常规>复制>跨项目重复检测 但是,您可能不想这样做。检测跨项目重复的目的是帮助您识别将共享代码提取到库中的机会。因为在所有复制都变成维护噩梦之后:当需要更改

我有一组项目,它们有很多共同的代码。SonarQube显示高比例的重复。当我查看每个文件的复制时,复制代码上的引用指向代码相同的其他项目代码。有没有办法让复制只针对同一个项目运行?

默认情况下,SonarQube在4个级别检测复制:

  • 在源文件中
  • 跨项目中的多个文件
  • 跨项目的各个模块
  • 跨多个项目
您可以全局或在项目级别关闭最后一个选项:管理>常规>复制>跨项目重复检测


但是,您可能不想这样做。检测跨项目重复的目的是帮助您识别将共享代码提取到库中的机会。因为在所有复制都变成维护噩梦之后:当需要更改时,您必须在
n
位置执行
n次
,并更改
n
测试。

尽管G.Ann给出的答案对于这个问题来说已经足够了,但我还是想添加一个有效的场景,在这个场景中,我们可能需要忽略重复的代码以通过声纳进行检测。 我们可以有这样一个场景:在单个微服务下,不同的项目中有多个Java异常文件。 如果我们不打算为这些异常编写jUnit测试用例,那么我们必须使用pom.xml文件中的以下配置排除Sonar检测到的这些重复文件

**/Exception.java


这只是一个在不同项目中可以有不同结构的示例。

非常感谢您的快速回复。我们的用例是:我们有一个project x,它有5-10个不同的活动分支(针对旧版本、自定义、下一版本的热修复)。所有这些都共享大部分代码,每个分支使用不同的项目密钥和版本号构建。有没有关于如何更好地组织的建议?啊。嗯。。。否:-(您可以验证答案@OvidioPozo it help to not checks responsed and validated questions我将其全局关闭,因为我们的设置的性质,它工作正常。非常感谢。