2016-09-13 5 views
0

エンドポイント 'api/measures/component'を使用してSonarQubeインスタンスからカバレッジデータを抽出しようとしています。これは、マルチモジュールJavaプロジェクト用です。 POSTMANを使用して私はこのJSONレスポンスSonarQube 5.5 API - componentKey convention

com.i.pc.e.components.o:om-wf-e:src/main/java/com/i/e/o/wf/actions/Xxxx.java 

とリターンのような文字列を生成し、この

[maven-groupId]:[maven-artifactId]:[path to java file] 

のような文字列の蓄積である「componentKey」を使用して、単一のJavaファイルを照会することができます

{ 
"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" 
    } 
] 

これは1回限りのリクエストでは問題ありませんが、これを行う必要がありますまたはいくつかのJavaソースファイルがあり、Mavenの詳細を手に入れることはできません。

'componentKey'の形式に関する規約や文書はありますか?

理想的には、 'compomentKey'に完全なパッケージとJavaソースファイル名を定義したいのですが、他のREST API呼び出しで 'componentId'を検索する方法はありますか?

答えて

2

componentsサービスを使用して、プロジェクトから開始してsonar.projectKeyの値をbaseComponentKeyパラメータに指定して、ツリー(またはツリー内のサブツリー)を繰り返し処理します。 strategyパラメータに特に注意してください。このパラメータは、コールが取得する子サブセットのサブセットを決定します。

各自のデータを取得したら、そのデータを反復して対策を取ることが簡単です。

+0

ありがとう@ g-ann-sonarsource-team - これは私が 'baseComponentKey'または 'baseComponentId'を知っていると仮定しています。完全なクラスとパッケージ名で渡すことができる検索またはクエリapiはありますか? – emeraldjava

+0

私はわずかに@emeraldjavaを拡張しました。それが役立つかどうかを確認する –

関連する問題