SonarQube 5.5 API - componentKey 约定

SonarQube 5.5 API - componentKey convention

我正在尝试使用“api/measures/component”端点从我们的 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

和returns这个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' 格式的约定或文档?

理想情况下,我想在 'compomentKey' 中定义完整的包和 java 源文件名,或者有没有办法通过其他 REST 'componentId' API打电话?

使用 components 服务从您的项目开始遍历您的树(或树中的 sub-trees)并将您的 sonar.projectKey 值输入 baseComponentKey 参数.请特别注意 strategy 参数,它决定调用检索的 sub-set of children。

获得每个 child 的数据后,迭代它们以获得它们的度量应该很简单。