分析出力
出力構造
Qodana コード分析を実行するたびに、出力ディレクトリに次の出力が生成されます。
ログ / :
idea.log、gradle.logなどが含まれます。プロジェクトの構造 / : プロジェクト情報: モジュール、フレームワーク / ライブラリ、ルートなど。
報告 / : HTML レポート (
--save-report/--show-reportオプションが指定されている場合に生成されます)。Qodana の完全な結果はresults-allProblems.jsonファイルで入手できます。.descriptions.json : すべてのインスペクションの説明。
%InspectionId%.json : この ID:
%InspectionId%メッセージ、場所、重大度などのインスペクションによって生成されたすべての問題。qodana.sarif.json : SARIF 形式でレポートします。
SARIF 出力
Qodana レポートは SARIF 仕様(英語)に従ってフォーマットされ、JSON ファイルに含まれます。SARIF の Qodana 実装は、一般的な形式規則に従いますが、プロパティバッグ(英語)に含まれるいくつかのカスタムプロパティも指定します。
レポートの構造
Qodana によって生成されるレポートの構造は次のとおりです。
各レポートは、単一の Qodana run (英語) を含む runs 配列で表されます。このオブジェクトには、ネストされた複数のオブジェクトが含まれます。
オブジェクト | 説明 |
|---|---|
Qodana リンター、プラグイン、インスペクションに関する情報 | |
Qodana 呼び出しの結果 | |
プロジェクトのチェックアウト元のバージョン管理システム | |
Qodana によって検出されたコードベースの問題 | |
Qodana 実行の識別 | |
行番号の計算に使用された改行シーケンス | |
カスタム Qodana プロパティ、以下を参照 |
カスタム Qodana プロパティは次のとおりです。
プロパティ | 説明 |
|---|---|
| インスペクションプロファイルがどのように発見されたか。 |
| 匿名統計に使用されるトラッキング ID。 |
道具
tool (英語) オブジェクトは、Qodana リンター、バンドルされたプラグイン、利用可能なインスペクションを記述します。
tool オブジェクトには、次の 2 つのネストされたオブジェクトが含まれています。
オブジェクト | 説明 |
|---|---|
呼び出された Qodana リンターに関する情報 | |
ロードされたプラグインと利用可能なすべてのインスペクション |
ドライバーオブジェクト
このオブジェクトには、呼び出された Qodana リンターに関する情報が含まれています。
オブジェクトは次のフィールドで構成されます。
フィールド | 説明 |
|---|---|
| Qodana リンターの ID |
| Qodana リンターの正式名 |
| Qodana リンターのバージョン |
| |
| インスペクションのカテゴリ (カテゴリ間の関係を含む) |
拡張オブジェクト
extensions 配列の各要素は 1 つの IntelliJ IDEA プラグインに対応し、プラグインの名前とバージョン、プラグインによって提供されるインスペクションに関する情報を提供します。
このオブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| Qodana プラグインの ID |
| Qodana プラグインのバージョン |
| プラグインによって提供されるインスペクション |
プラグインの各インスペクションは、次のフィールドを持つ reportingDescriptor (英語) によって記述されます。
フィールド | 説明 |
|---|---|
| インスペクション ID |
| インスペクションの簡単な説明 |
| インスペクションの詳細説明 |
| |
| インスペクションと他のインスペクションの関係、詳細については |
呼び出し
invocations 配列には、Qodana invocation (英語) を記述する 1 つの要素が含まれており、Qodana が正常に実行されたかどうかを示します。
上記の例では、Qodana の実行は成功しました (exitCode、executionSuccessful)。(技術的に) 実行は成功したにもかかわらず、Qodana は、その正常なインスペクションがいくつかの問題 (message、level=error) を発見したと報告しました。「健全性」インスペクションが失敗した場合、これは通常、プロジェクト構成が壊れたことを意味します。
exitCode に指定できる値は次のとおりです。
値 | 説明 |
|---|---|
| 実行成功 |
| 内部エラー |
| メモリ不足のため、Qodana の Docker コンテナーには少なくとも 6 GB の RAM が必要です |
| |
invocations オブジェクトの他のフィールドの説明は次のとおりです。
toolExecutionNotifications フィールドには、しきい値の到達など、Qodana 分析中に生成された通知が含まれます。
バージョン制御来歴
versionControlProvenance 配列は、プロジェクトコードのチェックアウト元のバージョン管理システムを記述します。各バージョン管理システムは、 versionControlDetails (英語) オブジェクトによって記述されます。プロジェクトがバージョン管理システムを使用していない場合、versionControlProvenance 全体が存在しません。
各 versionControlDetails オブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| リポジトリのチェックアウト URL |
| 最新のコミットハッシュ |
| リポジトリブランチ |
| 追加のプロパティについては、以下を参照してください |
追加のプロパティはプロパティバッグ(英語)として保存され、最後のコミットの作成者に関する情報が含まれます。vcsType プロパティの値は常に Git です。
結果
results 配列は、インスペクション中に検出された問題を記述します。Qodana によって検出された各問題は、個別の result (英語) オブジェクトによって記述されます。
各 result オブジェクトは次のフィールドで構成されます。
フィールド | 説明 |
|---|---|
| 一意のインスペクション ID ( |
| 常に |
| SARIF 重大度レベル |
| IntelliJ IDEA メッセージ文字列の形式で結果 / 問題の説明を含むネストされた |
| |
| 異なる実行間の結果を比較するためのハッシュが含まれます。ベースライン機能によって使用されます |
| リンターがベースラインモードで実行されたかどうかを示し、次の値を受け入れることができます。
|
| 元の IntelliJ IDEA インスペクション重大度を値として持つ |
位置オブジェクト
各 location (英語) オブジェクトは、ファイル内の具体的な物理的な場所を記述し、高レベルの論理的な場所によって拡張されます。
PhysicalLocation オブジェクト
physicalLocation オブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| 次のフィールドを含む
|
| 問題の場所とハイライトする必要があるスニペットに関する情報が含まれます。詳細については、以下のセクションを参照してください |
| |
地域オブジェクト
region (英語) オブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| 領域内の最初の文字の行番号。1 から始まる |
| 領域内の最初の文字の列番号。1 から始まり、UTF-16 コード単位で測定されます。 |
| ファイルの先頭と領域の先頭の間の UTF-16 コード単位の数 |
| UTF-16 コード単位で測定された領域の長さ |
| 指定された領域のテキストと等しい値を持つ |
| インスペクションされたスニペットのプログラミング言語。Qodana のユーザーインターフェースでのハイライトに使用されます |
logicalLocations オブジェクト
logicalLocations オブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| 常に |
| プロジェクトビルドシステムから取得したモジュール名 |
自動化の詳細
runAutomationDetails (英語) オブジェクトは、 run オブジェクトの詳細を提供します。
automationDetails オブジェクトには次のフィールドが含まれます。
フィールド | 説明 |
|---|---|
| ユーザーが読み取り可能な文字列、レポートごとに一意 |
| 機械可読な一意のレポート ID |
| 実行に関する追加情報 (Qodana の場合) には、レポートを生成した CI/CD ビルドの URL が含まれます。 |
改行シーケンス
newlineSequences (英語) 配列には一意の文字列が含まれており、各文字列は Qodana が実行中に改行として扱う文字シーケンスを指定します。
プロパティ
インスペクションプロファイルで構成されたインスペクションに加えて、Qodana はプロジェクト構成の健全性チェックのためにいくつかの追加のインスペクションを実行します。これらの追加のインスペクションで問題が見つかった場合は、プロジェクトの構成が間違っている可能性があります。これらの追加のインスペクションの結果は、通常の result オブジェクトと同じ形式で qodana.sanity.results プロパティに記録されます。
SARIF の重大度
SARIF 重大度値(英語)は、次の表に従って IntelliJ IDEA の重大度の値に対応します。
IDE の重大度 | SARIF の重大度 | コダナレポート重大度 | コード気候(英語)重大度 | Bitbucket の重症度 |
|---|---|---|---|---|
ERROR | ERROR | クリティカル | ブロッカー | 高 |
警告 | 警告 | 高 | クリティカル | 高 |
弱い警告 | 注 | 適度 | メジャー | 中 |
TYPO | 注 | 低 | マイナー | 低 |
INFORMATION | 注 | 情報 | 情報 | 情報 |
OTHER | 注 | 情報 | 情報 | 情報 |
元の IntelliJ IDEA インスペクション重大度は、同じオブジェクトの propertyBag フィールドに保存されます。
関連ページ:
クオリティゲート
高品質のゲートは、コードの品質を制御し、期待される品質を満たすソフトウェアを構築できるようにする手法です。品質ゲート条件が失敗すると、Qodana は終了コード 255 を使用して終了し、CI/CD ワークフローまたはパイプラインが失敗します。例: プロジェクトの品質ゲートが 10 個の問題に設定され、コードカバレッジが 40% に設定されている場合、Qodana が 11 個目の問題またはコードカバレッジが 40% のしきい値を下回っていることが検出されると、ビルドワークフローは失敗します。品...
ベースライン
ベースラインは、特定の Git ブランチの特定の Qodana 実行時に取得され、ファイルに含まれるコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しいファイルを生成し、Qodana の実行中に使用することで、ベースラインを更新できま...
分析レポート
Qodana を使用すると、ローカルまたは Qodana クラウドでインタラクティブかつユーザーフレンドリーな形式で分析レポートを確認できます。レポート UI の概要:各レポートには次のタブが含まれています。実際の問題は、最新のインスペクション中に Qodana が検出した問題を明らかにします。ベースラインには、ベースラインとしてマークされ、それ以降修正されていない問題がリストされます。構成により、Qodana を将来の使用のために構成できます。ライセンス監査
Inspectopedia
特定の分析結果や、それがコードベースで問題となる理由について、より詳しい情報が必要になる場合があります。Inspectopedia では、インスペクションの詳細(説明、重大度、対象言語など)を提供しています。目次を使用して、利用可能なすべてのインスペクションを調べることができます。あるいは、具体的なインスペクションを名前または識別子で検索することもできます。2025 年 5 月 23 日分析出力機能の概要