我有四个项目,它们有几个共同的模块。
当我尝试运行SonarQube完整分析时,只有第一个项目被成功分析。从第二个项目开始,我收到一条错误消息,"服务器中已经存在XXX模块"。
我的四个项目中的每一个都包含一个聚合器POM。这就是我用它来构建它们并运行Maven声纳:声纳目标。
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
选择一个要在其中分析共享模块的主项目;首先分析该项目。
在其他(后续)项目中,将以下内容添加到共享模块的pom.xml中,从SonarQube分析中排除共享模块:
writer
答案 1 :(得分:0)
如果通过共享模块,您的意思是该模块同时出现在项目A和项目B中,那么它会产生问题,因为SONAR只允许存在一个模块实例。
您可以做的是在项目1上运行SONAR,然后清除工作区并再次为项目2运行..等等......
这样,您一次只能在SONAR中拥有一个模块实例。
你可以编写一个脚本来逐个执行SONAR作业,然后在Jenkins中为它创建一个新作业。
答案 2 :(得分:-1)
您似乎正在破坏组件/模块/库约定或误用它。根据{{1}}原则,您不应该多次“包含”(在二进制配置管理的情况下构建)您的组件。
拥有一个具有许多依赖的库和最后一个库的库是独立的,只需要像其他任何框架一样管理appart。
你应该自己安装/部署这个组件然后只是引用它。同样的原则适用于Configuration Management
。您不能通过不同的“产品”分析共享组件。
他们必须有自己的生命周期。当四个项目彼此平行时,你如何管理共享图书馆的演变?