SonarQube 5.5 API-组件密钥约定

SonarQube 5.5 API-组件密钥约定,sonarqube,sonarqube-web,Sonarqube,Sonarqube Web,我正在尝试使用“”端点从SonarQube实例提取覆盖率数据。这是一个多模块java项目。使用POSTMAN,我可以使用“componentKey”查询单个java文件,它由如下字符串组成 [maven-groupId]:[maven-artifactId]:[path to java file] 这会生成一个字符串 com.i.pc.e.components.o:om-wf-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java 并返回此json响应

我正在尝试使用“”端点从SonarQube实例提取覆盖率数据。这是一个多模块java项目。使用POSTMAN,我可以使用“componentKey”查询单个java文件,它由如下字符串组成

[maven-groupId]:[maven-artifactId]:[path to java file]
这会生成一个字符串

com.i.pc.e.components.o:om-wf-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java
并返回此json响应

{
"component": {
  "id": "AVci_6G7elHqFlTqG_OC",
  "key": "com.i.pc.e.components.o:om-wfl-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java",
  "name": "Xxxx.java",
  "qualifier": "FIL",
  "path": "src/main/java/com/i/e/om/wf/actions/Xxxxx.java",
  "language": "java",
  "measures": []
},
"metrics": [
  {
    "key": "coverage",
    "name": "Coverage",
    "description": "Coverage by unit tests",
    "domain": "Coverage",
    "type": "PERCENT",
    "higherValuesAreBetter": true,
    "qualitative": true,
    "hidden": false,
    "custom": false,
    "decimalScale": 1,
    "bestValue": "100.0",
    "worstValue": "0.0"
  }
]
}

这对于一次性请求很好,但我需要对许多Java源文件执行此操作,我手头没有Maven的详细信息

“componentKey”的格式是否有约定或文档

理想情况下,我希望在“ComponentKey”中定义完整的包和java源文件名,或者是否有办法通过其他REST API调用查找“componentId”?

使用服务在树(或树中的子树)中迭代从项目开始,将
sonar.projectKey
值输入
baseComponentKey
参数。请特别注意
strategy
参数,该参数确定调用检索的子集合

一旦你有了每个孩子的数据,就应该很容易通过迭代来获取他们的度量值。

使用该服务来迭代你的树(或树中的子树),从你的项目开始,并将你的
sonar.projectKey
值输入
baseComponentKey
参数。请特别注意
strategy
参数,该参数确定调用检索的子集合


一旦你有了每个孩子的数据,就应该很容易通过迭代获得他们的测量值。

谢谢@g-ann-sonarsource-team-但这仍然假设我知道“baseComponentKey”或“baseComponentId”。是否有一个搜索或查询api,我可以在其中传递完整的类和包名?我稍微扩展了@emeraldjava。看看这是否有助于hanks@g-ann-sonarsource-team——但这仍然假设我知道“baseComponentKey”或“baseComponentId”。是否有一个搜索或查询api,我可以在其中传递完整的类和包名?我稍微扩展了@emeraldjava。看看这是否有帮助