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

问题描述 投票:2回答:3

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

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

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

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

java maven sonarqube
3个回答
-1
投票

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

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

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

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


1
投票

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

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

<properties>
    <sonar.skip>true</sonar.skip>
</properties>

0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.