SonarQube:如何分析共享多个模块的项目?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SonarQube:如何分析共享多个模块的项目?相关的知识,希望对你有一定的参考价值。

我有四个项目,它们有几个共同的模块。

当我尝试运行SonarQube完整分析时,只有第一个项目被成功分析。从第二个项目开始,我收到一条错误消息“服务器中已存在XXX模块”。

我的四个项目中的每一个都包含一个聚合器POM。这就是我用它来构建它们并运行Maven声纳:声纳目标。

解决这个问题的最佳方法是什么?

答案

看来你正在破坏组件/模块/库约定或误用它。从Configuration Management原则来看,您不应该多次“包含”(在二进制配置管理的情况下构建)您的组件。

拥有一个具有许多其他依赖的库和最后一个库的库是独立的,只需要像任何其他框架一样管理appart。

你应该只是自己安装/部署这个组件然后只是引用它。同样的原则适用于SonarQube Configuration Manager。您不能通过不同的“产品”分析共享组件。

他们必须有自己的生命周期。当四个项目彼此平行生活时,您如何管理共享库的演变?

另一答案

选择要在其中分析共享模块的主项目;首先分析该项目。

在其他(后续)项目中,通过将以下内容添加到共享模块的pom.xml中,从SonarQube分析中排除共享模块:

<properties>
    <sonar.skip>true</sonar.skip>
</properties>
另一答案

如果通过共享模块,则表示模块存在于项目A和项目B中,然后是,它将产生问题,因为SONAR仅允许存在模块的一个实例。

您可以做的是在Project 1上运行SONAR然后清除工作区并再次为Project 2运行..等等......

这样,您一次只能在SONAR中拥有一个模块实例。

您可以编写一个脚本来逐个执行SONAR作业,并在Jenkins中为此创建一个新作业。

以上是关于SonarQube:如何分析共享多个模块的项目?的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube:找不到打字稿模块

为啥删除的 Maven 模块不会从 SonarQube 中消失?

如何配置SonarQube以显示多模块maven项目的所有模块?

SonarQube 无法在空实例“模块已经是项目的一部分”上执行目标

SonarQube / AngularJS - 如何让 SonarQube 启动并运行以集成 / 分析我的 Angular 项目?

跳过 SonarQube 中模块的代码覆盖率