【发布时间】:2018-01-30 14:46:36
【问题描述】:
我已从 Sonar 5.3 升级到 6.2,项目 X 在 jenkins 工作的声纳阶段给了我一些奇怪的错误(尽管构建完成为 STABLE)。
该项目是一个标准的多模块maven java项目。
进入项目仪表板,屏幕上会出现一条消息:
"自创建以来未执行任何分析。唯一可用的 部分是配置。”
但是在右上角出现了红色的“FAILED”标签。这会导致项目的后台任务,并且存在带有此错误日志的失败任务:
SonarQube 中已经定义了项目“com.foo:bar-submodule-1” 但不是作为项目“com.foo:bar”的模块。如果你真的想 请停止直接分析项目“com.foo:bar-submodule-1” 首先从 SonarQube 中删除它,然后重新启动分析 项目“com.foo:bar”
我不想删除项目并丢失历史数据。
所以问题是:如何将项目 Y(即项目 X 的子模块,但 Sonar 无法识别)添加为项目 X 的子模块?
编辑 1
父项目是唯一通过jenkins jobs分析过的项目。
【问题讨论】:
-
可以在 sonar-project.properties 文件中为模块和子模块添加新名称,然后重新运行分析。
-
您确认您作为独立项目一直在分析 com.foo:bar-submodule-1 吗? (即使它是一个更大项目的子模块)。 api/components/show?key=com.foo:bar-submodule-1 的输出可以帮助提供更多上下文。
-
api/components/show 的输出?key=: {"component":{"id":"AVXZ1QXRLUlRa7_XO26T","key":"com.foo::bar-submodule-1", "name":":Bar Submodule1","qualifier":"TRK"},"ancestors":[]}
-
@lakshman 如果有必要我会这样做,我在想为什么声纳会丢失子模块的跟踪,以及是否有办法在不向项目中添加任何文件的情况下重新连接它们
-
我建议了另一种方法来做到这一点。