如果搜索未找到,如何在 SonarQube 5.3 中删除项目?
Posted
技术标签:
【中文标题】如果搜索未找到,如何在 SonarQube 5.3 中删除项目?【英文标题】:How to delete a project in SonarQube 5.3 if the search doesn't find it? 【发布时间】:2016-04-23 23:54:36 【问题描述】:一些项目的分析失败并出现以下错误:
org.sonar.api.utils.MessageException:项目验证失败: o 项目“com.xxx.myproject:myproject-api-test”已在 SonarQube 中定义,但不是项目“com.xxx.myproject:myproject”的模块。如果您真的想停止直接分析项目“com.xxx.myproject:myproject-api-test”,请先将其从 SonarQube 中删除,然后重新启动对项目“com.xxx.myproject:myproject”的分析。
但是,我无法在 SonarQube 前端找到该项目,因此无法删除它。 我尝试直接浏览到我想象的那个项目的 URL。这对一个人有用,但我有更多有这个问题的项目,对于那些没有 URL 的项目。 还有一件事:我使用多模块项目。
【问题讨论】:
【参考方案1】:您需要进入数据库并从那里进行操作。我在以前的工作中确实有一个脚本来解决这个问题:(。我想我可以解释那里发生的事情,而不会在数据库中看到任何东西。
-
您有一个运行良好且轻松的多模块 maven 项目。
有人在其中一个子模块上运行声纳构建。这将 Sonar 中的子模块更新为***模块。
有人从声纳 (UI) 中删除了子模块,实际上并没有删除它,而是将其标记为已删除。这也是您无法从声纳 UI 中找到它的原因。
我记得做的是
-
登录数据库
找到描述***模块的行
找到描述给您带来麻烦的子模块的行
将子模块的行更新为子模块(我记得有一个“类型”列或类似的列)并从步骤 2 中更新父 ID。您也可以取消将其标记为已删除。
很抱歉,我无法为特定的 SQL 查询提供更多帮助。
【讨论】:
这在大多数情况下都有效,除了我无法在数据库中找到模块的几个!?关于该案件的原因和解决方案的任何想法?我应该提一下,我正在测试升级 SonarQube 4.0 > 4.5.6 > 5.3。 这真的很奇怪。您是说如果您查询项目/模块表并按模块 ID 搜索(例如“com.xxx.myproject:myproject-api-test”),您不会得到任何结果?如果是这种情况,我不确定我能提供帮助,因为我以前从未见过这种情况。 “可能”工作的方法是在启用调试的情况下运行声纳构建,并检查它是否会注销它对数据库运行的任何查询,这些查询可能暗示正在发生的事情。 我的错。我在查询“名称”而不是“kee”(在项目表中)。对于大多数项目来说,这些巧合地匹配,但对于其他一些项目却没有。谢谢。 太棒了!只是一个评论......声纳邮件列表上的人也很有帮助,以防您有其他问题。我有一段时间没有检查它,但如果你在这里没有得到答案,这是另一个好地方:)。【参考方案2】:我正在使用 sonarqube 版本 5.1.x 并遇到了同样的问题。在 maven 子模块上执行 mvn sonar:sonar。为了解决这个问题,我更新了该项目的 kee 列产品表并将值设置为:。之后以管理员身份登录 UI 并进行批量删除。重新运行 mvn sonar:sonar 并能够验证修复。
【讨论】:
以上是关于如果搜索未找到,如何在 SonarQube 5.3 中删除项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置SonarQube以显示多模块maven项目的所有模块?
SonarQube 和 Karma 代码覆盖率 - 未解析的文件路径
DJANGO - 如果未找到数据,如何显示“未找到您的搜索”