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

时间:2015-09-25 19:33:00

标签: java maven sonarqube

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

writer

答案 1 :(得分:0)

如果通过共享模块,您的意思是该模块同时出现在项目A和项目B中,那么它会产生问题,因为SONAR只允许存在一个模块实例。

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

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

你可以编写一个脚本来逐个执行SONAR作业,然后在Jenkins中为它创建一个新作业。

答案 2 :(得分:-1)

您似乎正在破坏组件/模块/库约定或误用它。根据{{​​1}}原则,您不应该多次“包含”(在二进制配置管理的情况下构建)您的组件。

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

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

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