インスペクションプロファイル
インスペクションプロファイルは、状態、構成オプション、分析の範囲、重要度を含む、事前に構成されたインスペクションのセットです。
Qodana インスペクションプロファイルは、使用するインスペクションを構成します。有効にするインスペクションが少なすぎると、重大な問題を見逃す可能性があり、プロジェクト全体に影響を及ぼします。一方、有効なインスペクションが多すぎると、インスペクションのパフォーマンスに悪影響が生じ、プロジェクトに無関係なインスペクションが使用される可能性があります。
このセクションでは、既存の Qodana プロファイルを使用する方法、独自のプロファイルを作成する方法、Qodana を使用してプロジェクトを分析するためのプロファイルを設定する方法について説明します。
既存の Qodana プロファイル
すぐに使用できる Qodana プロファイルは次のとおりです。
プロファイル名 | 説明 |
|---|---|
| |
| 最も使いやすいインスペクションを提供し、IntelliJ IDEA などの JetBrains IDE のデフォルトプロファイルを実装しますが、以下の例外があります。
|
| このプロファイルは、プロジェクトが適切に構成されているかどうかを分析するために、デフォルトで有効になっています。 このプロファイルのインスペクションを無効にする方法については、健全性チェックを無効にするおよびプロファイルのセクションを参照してください。 |
これらのプロファイルは GitHub(英語) でホストされているため、詳細を知ることができます。
既存のプロファイルを設定する
YAML 形式の設定ファイルは、Qodana の汎用的な設定方法として機能します。つまり、 qodana.yaml ファイルを使用して Qodana を一度設定すれば、その設定ファイルを Docker、GitHub、JetBrains IDE、または Qodana で現在サポートされているその他のソフトウェアで Qodana を実行する際に再利用できます。設定はこれらのすべてのプラットフォームで一貫して維持されます。
qodana.recommended プロファイルを設定するには、プロジェクトルートに次の構成を含む qodana.yaml ファイルを保存します。
IDE で、に移動します。
ダイアログの
profileセクションに、プロファイル構成を貼り付けます。profile: name: qodana.recommended
ダイアログで、オプションをオンにします。

コードの分析を開始するには、をクリックします。
GitHub UI のタブで、
QODANA_TOKEN暗号化シークレット(英語)を作成し、その値としてプロジェクトトークンを保存します。GitHub UI のタブで、新しいワークフローを設定し、
.github/workflows/code_quality.ymlファイルを作成します。main、ブランチ、リリースブランチ、リポジトリに届くプルリクエストを分析するには、ワークフロー構成を.github/workflows/code_quality.ymlファイルに保存します。name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' branch - 'releases/*' # The release branches jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 with: args: --profile-name qodana.recommended env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}ここで、
--profile-nameオプションはqodana.recommendedプロファイルを指定します。
--profile-name オプションを使用して qodana.recommended プロファイルを設定できます。
カスタムプロファイル
次の形式を使用してカスタムプロファイルを作成できます。
YAML が推奨される形式です
XML は YAML の代替として使用できます
カスタムプロファイルは、既存のプロファイルを上書きすることも、最初から作成することもできます。
このスニペットは、YAML 形式を使用して、ニーズに合わせて Qodana を微調整する方法を示しています。
このスニペットには次のキーが含まれています。
プロファイル
profile キーは次の要素で構成されます。
セクション | 説明 |
|---|---|
プロファイル構成の基礎となるプロファイル | |
インスペクションプロファイルの名前。 | |
プロファイルに含めるか除外する必要があるインスペクショングループ | |
|
ベース
base ノードでは、プロファイル設定のベースとなるプロファイルを指定できます。ファイルパスまたは名前のいずれかを使用できます。
name キーは次の値をサポートします。
| 説明 |
|---|---|
| JetBrains IDE から取得されたデフォルトのプロファイル |
| プロファイルは基本的に |
| |
| デフォルトの Qodana プロファイル、 |
| JetBrains IDE のデフォルトプロファイルを実装するデフォルトの Qodana プロファイル |
| インスペクションの重大度とパラメーターは |
name 宣言がない場合、Qodana は Project Default プロファイルを採用するため、カスタムプロファイルに適用されたすべての設定によって、Project Default に含まれる設定が上書きされます。
名前
ベースとして使用する設定を含む、.idea/inspectionProfiles ディレクトリのプロファイルの名前。
このキーは base.name 設定と重複しており、併用することはできません。
グループ
groups ノードは、ユーザー定義グループのリストです。ここでは、インスペクションカテゴリと単一のインスペクションを組み合わせ、 inspections ノードでの使用箇所を設定できます。
各グループ定義では、他のグループまたは単一のインスペクションを含めたり除外したりできます。
感嘆符文字 (!) を使用して、グループまたはカテゴリを否定できます。例: 含まれるグループ内の特定のカテゴリの使用を除外できます。
ユーザーが定義した EnabledInspections グループを含むサンプルを次に示します。
このサンプルには次の要素が含まれています。
プロパティ | 説明 |
|---|---|
グループの ID | |
このグループに含まれるインスペクションと除外されるインスペクションのリスト | |
このグループに含まれるグループと除外されるグループのリスト |
groups.groupId
一意のグループ識別子。
2 つのグループが同じ groupId で定義されている場合、ファイル内で見つかった最新のグループが使用されます。インクルードされるファイルに含まれる設定は、現在のファイルに配置される設定よりも前に考慮されるため、このルールはインクルードされるすべてのファイルにも適用されます。
groups.inspections
グループに含まれるインスペクションのリスト。
groups.groups
使用可能な感嘆符文字 (!) を含むグループ ID のリスト:
ここで、groups はいくつかの値を受け入れます。
| 説明 |
|---|---|
| すべてのインスペクションを含めます。さらに、 |
| |
| 既存のユーザー定義グループの名前、または含まれているプロファイルのグループの名前 |
| ユーザー定義または別のプロファイルに含まれている既存の |
| インスペクションを特定の重大度レベルで含めるか除外します。重大度の値は |
デフォルトでは、Qodana は、次の表に示す JetBrains IDE から継承した重大度レベルを使用します。
インスペクション
inspections を使用すると、次のことが可能になります。
特定のグループまたはインスペクションを有効または無効にする
これらの設定を適用する順序を定義します。
特定のグループまたはインスペクションによって無視されるパスまたはスコープを定義します。
特定のインスペクションまたはインスペクショングループの重症度をカスタマイズする
インスペクションオプションを構成します。
このサンプルにはいくつかの要素が含まれています。
プロパティ | 説明 |
|---|---|
| 埋め込みグループまたはユーザー定義グループの |
| インスペクションの ID |
| インスペクションのグループまたは単一のインスペクションに割り当てられる重大度レベル。例: |
| インスペクション中に無視されるグロブパターン(英語)とスコープを使用するパスのリスト |
| グループまたはインスペクションをプロファイルで有効にするかどうかを指定します。 |
| 特定のインスペクションに設定できるオプションのリスト |
インポート
インポートしたプロファイルのリストをプロジェクトルートを基準に設定できます。この機能は、特定のプロファイル設定をマージし、その結果を要件に合わせて調整する必要がある場合に便利です。例として、構成のマージセクションを参照してください。
imports ノードは base とは関連がありません。base に値が含まれていない場合は、Default に設定されます。
デフォルトプロファイルを表示するには、JetBrains IDE で設定 | エディター | インスペクションに移動し、プロファイルドロップダウンセレクターで Default プロファイルを選択します。
ファイルの内容は出現順に含まれるため、プロファイルの一部になります。これは、含まれるファイルの設定が、カスタムプロファイルで指定された設定よりも前に使用されることを意味します。
インポートの例
foo.yaml および bar.yaml プロファイルがあると仮定します。
foo.yaml プロファイルは Inspection1、Inspection2、Inspection3 インスペクションを有効にします。
bar.yaml プロファイルは、Inspection1 インスペクションを無効にします。
これら 2 つのファイルをカスタムプロファイルに含めて、Inspection2 を無効にすることができます。
この場合、Qodana によって読み取られる有効なプロファイル構成は次のようになります。
構成例
ここでは、プロファイル構成の例をいくつか紹介します。
インスペクションを除外
これにより、PHP 用の Qodana リンターで利用可能な PhpDeprecationInspection インスペクションを除外できます。
あるいは、groups を使用して PhpDeprecationInspection インスペクションを除外することもできます。
パスを無視する
ignore キーを使用すると、グローブパターンに一致する特定のスコープとパスを無視できます。
プロファイルの作成
base を使用して、この構成では空のプロファイルを定義し、JVM 用 Qodana リンターからの Java/Data flow インスペクショングループのみを含めます。
base の代わりに、 groups プロパティで ALL を使用できます。
プロファイルを上書きする
.NET 用 Qodana リンターに関連しないインスペクションカテゴリを qodana.starter (英語) プロファイルから除外できます。
重大度でフィルタリングする
このサンプルには、Java コードのインスペクション中に、重大度レベルが WEAK WARNING のすべてのインスペクションが含まれています。
オーバーライドの重大度
既存のインスペクションの重大度レベルを上書きできます。WARNING 重大度レベルを JavadocReference インスペクションに割り当てる方法は次のとおりです。
上書きオプション
特定のインスペクション(英語)は構成可能なオプションを提供します。例: JvmCoverageInspection (英語) インスペクションは classThreshold、methodThreshold、warnMissingCoverage オプションを提供します。
これを確認するには、IntelliJ IDEA でこのインスペクションを設定し、プロファイルをエクスポートします。以下は JvmCoverageInspection インスペクションのプロファイル例です。
このサンプルは、カスタムプロファイルでインスペクションオプションを構成する方法を示しています。
カスタム XML プロファイル
IDE を使用して XML 形式のインスペクションプロファイルを作成できます。例: IntelliJ IDEA の場合は、プロファイルを構成するページで説明されています。プロファイルを作成したら、ファイルにエクスポートできます。
カスタムプロファイルを使用して Qodana を実行するには、既存のプロファイルを設定するセクションの推奨事項に従うことができます。この場合、プロファイル名は、それを含むファイルの名前と必ずしも一致しません。実際の名前は、プロファイルファイルに %profileName% 値として保存されます。
SQL ダイアレクトを指定する
SQL コードを解析するには、SQL 関連のインスペクションを有効にするだけでは不十分です。この場合、解析する SQL ダイアレクトも指定する必要があります。そのためには、以下の内容を含む .idea/sqldialects.xml をプロジェクトルートに保存してください。
このスニペットの具体的な SQL ダイアレクトの名前を見つけるには、IDE でに移動します。の上部にあるまたはのドロップダウンリストを展開します。
プロファイルを使用する
YAML 設定は、Qodana の汎用設定方法として機能します。つまり、 qodana.yaml ファイルを使用して Qodana を一度設定すれば、Docker、GitHub、JetBrains IDE、または Qodana で現在サポートされているその他のソフトウェアで Qodana を実行する際に再利用できます。この場合、追加の設定は不要で、すべての設定はこれらのプラットフォーム間で一貫して維持されます。以下の例を参照してください。
次の例は、 --profile-path オプションを使用してカスタムプロファイルを呼び出す方法を示しています。
GitHub UI のタブで、
QODANA_TOKEN暗号化シークレット(英語)を作成し、その値としてプロジェクトトークンを保存します。GitHub UI のタブで、新しいワークフローを設定し、
.github/workflows/code_quality.ymlファイルを作成します。main、ブランチ、リリースブランチ、リポジトリに届くプルリクエストを分析するには、ワークフロー構成を.github/workflows/code_quality.ymlファイルに保存します。name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' branch - 'releases/*' # The release branches jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 with: args: --profile-path .qodana/profiles/<custom-profile.yaml> env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
--profile-path オプションを使用してカスタムプロファイルを設定できます。
プロファイルを解決する順序
Qodana は、インスペクションプロファイルを解決するための構成パラメーターを次の順序でチェックします。
コマンドラインオプション
--profile-name %name%からの%name%という名前のプロファイルコマンドラインオプション
--profile-path %path%からのパス%path%によるプロファイルqodana.yamlから%name%という名前のプロファイルqodana.yamlから%path%のパスによるプロファイル/data/profile.xmlに取り付けられたプロファイルデフォルトの
qodana.recommendedプロファイルの使用に戻ります。
関連ページ:
分析レポート
Qodana を使用すると、ローカルまたは Qodana クラウドでインタラクティブかつユーザーフレンドリーな形式で分析レポートを確認できます。レポート UI の概要:各レポートには次のタブが含まれています。現在の問題点は、最新のインスペクション中に Qodana が検出した問題を明らかにします。基本的な問題点は、ベースラインとしてマークされ、それ以降修正されていない問題点を一覧にしたものです。インスペクションを使用すると、Qodana を将来使用するために設定できます。
インスペクション
各インスペクションは、コードを分析し、コード内の異常な断片を検出して修正するための条件セットです。Qodana およびインスペクションは、さまざまな問題を検出してハイライトし、デッドコードの位置を特定し、潜在的なバグやスペルミスを見つけ出し、コード全体の構造改善を容易にします。すべてのインスペクションは高度に構成可能であるため、以下を構成できます。コードベースで実行するインスペクションの種類。さまざまなインスペクションが存在するため、何らかの理由で有効または無効にすることができます。コード分析に...
インスペクションプロファイル
インスペクションプロファイルには、有効なインスペクション、これらのインスペクションが分析するファイルの範囲、およびインスペクションの重大度設定に関する情報が保持されます。IntelliJ IDEA には、次の 2 種類のプロファイルがあります。グローバルですべてのプロジェクト (IDE レベル) で使用できるプロファイル IDE に保管。1 つのプロジェクト (プロジェクトレベル) でのみ使用可能なプロファイルプロジェクトに保管。レベル間でプロファイルを移動する詳細を参照してください。Intell...
YAML ファイル
デフォルトでは、Qodana はプロジェクトのルートディレクトリに含まれるファイルから構成を読み取ります。オプションを使用してこのファイル名を上書きできます。カスタム構成ファイルセクションを参照してください。便宜上、このセクションではデフォルトの名を使用して参照します。で適用された構成は、デフォルトのインスペクションプロファイル設定と Qodana リンターのデフォルト構成を上書きします。これは HTML レポートセクションを使用して構成でき、すべての変更が自動的に適用されます。の JSON スキ...
ベースライン
ベースラインは、特定の Git ブランチの特定の Qodana 実行時に取得され、ファイルに含まれるコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しいファイルを生成し、Qodana の実行中に使用することで、ベースラインを更新できま...
プロジェクト
プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:新しい組織を作成する際、Qodana Cloud は最初のプロジェクトの設定を支援するため、これらの手順は追加のプロジェクトを作成する場合にのみ関連します。チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その...