【发布时间】:2014-09-10 16:46:04
【问题描述】:
给定两个资源键:
- A1:
groupid:artifactid:trunk - A2:
groupid:artifactid
当我尝试通过 SonarQube 的更新密钥功能将 A1 重命名为 A2 时,我收到一条消息,指出无法重命名密钥 A1,因为密钥 A2“是现有资源的密钥”。
在查看了数据库的内容后,似乎 A2 存在于“项目”表中,如下所示:
[1]
0: {
id: "114499"
k: "groupid:artifactid"
nm: "groupid:artifactid"
sc: "PRJ"
qu: "LIB"
}
我猜我面临的问题是由于 SonarQube 处理依赖项的方式:分析时,当分析另一个项目时,A1 在其名称(和 TRK 限定符)中注册了“分支”部分,他的依赖项不包含分支信息,因此注册了对 A2 的依赖项,而不是 A1。由于 SonarQube 找不到 A2 作为项目(TRK 限定符),它在其数据库中创建 A2 作为具有 LIB 限定符的新项目。结果,我无法将 A1 重命名为 A2,因为 A2 已经存在。
我试图通过 /api/projects webservice 删除 A2,但我收到以下错误,这让我认为 webservice 无法处理 LIB 项目:
{
err_code: 400
err_msg: "Not valid project"
}
问题:
如何以干净的方式删除所有不需要的“LIB”项目(即删除 SonarQube 数据库中可能正在使用它们的所有其他行)?
我们将不胜感激。
提前谢谢你。
【问题讨论】:
标签: sonarqube