如果搜索找不到,如何删除SonarQube 5.3中的项目?

时间:2016-01-18 17:52:00

标签: sonarqube

一些项目'分析失败,出现以下错误:

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不可用。 还有一件事:我使用多模块项目。

2 个答案:

答案 0 :(得分:1)

你需要进入数据库并从那里开始。我确实在以前的工作上有一个脚本来解决这个问题:(。我想我可以解释在那里发生的事情,而不会在数据库中看到任何内容。

  1. 你有一个多模块的maven项目,运行起来非常简单。
  2. 有人在其中一个子模块上运行声纳构建。这更新了Sonar中的子模块,成为顶级模块。
  3. 有人从声纳(UI)中删除了子模块,该子模块实际上没有删除它,但将其标记为已删除。这也是你无法从声纳UI中找到它的原因。
  4. 我记得做的是

    1. 登录数据库
    2. 找到描述顶级模块的行
    3. 找到描述给您带来麻烦的子模块的行
    4. 更新子模块的行以成为子模块(我记得有一个'type'列或类似的)并从步骤2更新父ID。您也可以不将其标记为已删除。
    5. 对不起,我对特定的SQL查询无法提供更多帮助。

答案 1 :(得分:0)

我正在使用sonarqube版本5.1.x并遇到同样的问题。执行mvn声纳:maven子模块上的声纳。为了解决这个问题,我更新了该项目的kee列产品表,并将值设置为:。之后以管理员身份登录到UI并进行批量删除。重新播放mvn声纳:声纳并能够验证修复。