给出两个资源键:
groupid:artifactid:trunk
groupid:artifactid
当我尝试通过SonarQube的更新密钥功能将A1重命名为A2时,我收到一条消息,指出无法重命名密钥A1,因为密钥A2"是现有资源的密钥&# 34。
看了一下数据库的内容后,似乎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数据库中可能正在使用它们的所有其他行)?
非常感谢您的帮助。
提前谢谢。
答案 0 :(得分:0)
我今天遇到了完全相同的问题。我无法在任何地方找到该项目,所以我最终打开了数据库。
在表格'项目'在您的声纳数据库中,列出了所有项目。我搜索了这个项目,并更新了“' kee'列值到使用的名称。 (A2-> A21)
我所做的并不是解决问题,而是解决了这个问题。我不建议在生产系统上这样做,因为我不知道它可能对数据完整性产生什么影响。