Java、Kotlin、Groovy
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Java プロジェクトを分析するには、次のリンターを使用できます。
特性 | 説明 |
|---|---|
リンター名 |
|
Docker イメージ |
|
ベースとなるもの | IntelliJ IDEA Ultimate |
ライセンスに基づいて利用可能 | Ultimate および Ultimate Plus ライセンス |
発送方法 | ネイティブソリューションと Docker イメージ |
サポートされる言語 | Java、Kotlin、Groovy、JavaScript、TypeScript |
特性 | 説明 |
|---|---|
リンター名 |
|
Docker イメージ |
|
ベースとなるもの | IntelliJ IDEA Ultimate |
ライセンスに基づいて利用可能 | Ultimate および Ultimate Plus ライセンス |
発送方法 | Docker イメージ |
サポートされる言語 | Java、Kotlin、Groovy、JavaScript、TypeScript |
特性 | 説明 |
|---|---|
リンター名 |
|
Docker イメージ |
|
ベースとなるもの | IntelliJ IDEA Community エディション |
ライセンスに基づいて利用可能 | コミュニティライセンス |
発送方法 | ネイティブソリューションと Docker イメージ |
サポートされる言語 | Java、Kotlin、Groovy |
特性 | 説明 |
|---|---|
リンター名 |
|
Docker イメージ |
|
ベースとなるもの | IntelliJ IDEA Community エディション |
ライセンスに基づいて利用可能 | コミュニティライセンス |
発送方法 | Docker イメージ |
サポートされる言語 | Java、Kotlin、Groovy |
サポートされているテクノロジーと機能のリストを表示するには、このセクションのサポートされているテクノロジーと機能の章に移動してください。
始める前に
Qodana クラウド
使用している特定のリンターに応じて、ライセンスを識別および検証するために Qodana が使用するプロジェクトトークンを取得する必要がある場合があります。これを行うには、次の手順に従います。
Qodana クラウド(英語)に移動して、そこでアカウントを作成します。
プロジェクトカードには、このセクションで後で使用するプロジェクトトークンが記載されています。
ソフトウェアの準備
GitHub UI のタブで、QODANA_TOKEN 暗号化シークレット(英語)を作成し、その値としてプロジェクトトークンを保存します。
Jenkins で、次のプラグインが稼働していることを確認します。
Docker イメージを実行するには、Docker(英語) および Docker パイプライン(英語)が必要です
Jenkins プロジェクトでの Git 操作には Git(英語) が必要です
Docker がインストールされており、Jenkins からアクセスできることを確認します。
該当する場合は、Docker ドキュメントの Docker を非 root ユーザーとして管理する(英語)セクションの説明に従って、
jenkinsユーザーが Docker にアクセスできることを確認してください。Jenkins で、
qodana-token資格情報(英語)を作成し、プロジェクトトークンをその値として保存します。Jenkins で、Jenkins ドキュメントポータル(英語)の説明に従ってマルチブランチパイプラインプロジェクトを作成します。
プロジェクトリポジトリが GitLab CI/CD からアクセスできることを確認します。
GitLab CI/CD で、
QODANA_TOKEN(英語) 変数を作成し、プロジェクトトークンをその値として保存します。
Qodana を実行するマシンに Docker をインストールします。
Linux を使用している場合は、現在の非 root ユーザー(英語)で Docker を実行できるはずです。
GitHub の Qodana CLI(英語) ページの指示に従ってください。
必要なリンターの Docker イメージをプルするには、次のコマンドを実行します。
ここで、image は次の Docker イメージのいずれかを指します。
Docker イメージ | 説明 |
|---|---|
| JVM 用 Qodana |
| JVM の Qodana コミュニティ |
| Android のための Qodana コミュニティ |
| Android 用 Qodana |
K2 モード
K2 モードは、Qodana for JVM および Qodana Community for JVM リンターに対してデフォルトで有効になっています。
K2 モードを元に戻すには、リンター設定で idea.kotlin.plugin.use.k2 プロパティを false に設定します。
JDK の設定
プロジェクトで Gradle を使用している場合は、プロジェクト用に JDK のバージョンが正しく設定されていることを確認してください。
デフォルトのバージョン
次の表は、Qodana によってデフォルトで使用される JDK バージョンを示しています。
リンター | JDK バージョン |
|---|---|
JVM 用 Qodana | |
JVM の Qodana コミュニティ | |
Android のための Qodana コミュニティ | |
Android 用 Qodana |
JDK のデフォルトバージョンを使用する場合、特別な構成は必要ありません。
利用可能なバージョン
デフォルトで使用できるバージョンとは別に、Qodana はすべての JVM リンターに対して JBR SDK の次のバージョンを自動的にダウンロードして使用できます: 8、11、13、15、16、17、18、19、21。
それ以外の場合は、必要な JDK バージョンをダウンロードして Qodana にマウントできます。
Qodana の設定
qodana.yaml ファイルでは、projectJDK オプションを使用して JDK バージョンを指定できます。例:
または:
次の名前を使用して JDK を指定することもできます。
ここで利用可能なバージョンのリストから任意の JDK を指定すると、Qodana によって自動的にダウンロードされます。このリスト以外の JDK を使用したい場合は、JDK をダウンロードして Qodana にマウントする必要があります。
Gradle
Gradle は互換性マトリックス(英語)に基づいてスクリプトを実行します。つまり、サポートされダウンロード可能な最新の JDK バージョンが Gradle JDK として設定されます。互換性マトリックスと使用可能な JDK バージョンのリストを組み合わせて使用すると、Qodana で使用される JDK を見つけることができます。例: Qodana は、Gradle 6.6 で JDK 13 をダウンロードして使用します。
Maven
Maven では、Java コンパイラーのソースバージョンとターゲット(英語)バージョンを構成できます。Qodana はこれらの値を比較し、最新バージョンを選択します。次に、このバージョンの JDK が使用可能なバージョンのリスト内で検索されます。見つかった場合、Qodana はそれをダウンロードして使用します。それ以外の場合、Qodana はこのリストから後続のバージョンをダウンロードします。
JDK をマウントする
JDK をローカルファイルシステムから Qodana Docker イメージの /root/.jdks フォルダーにマウントできます。
Qodana の実行
次の方法を使用して Qodana リンターを実行できます。
Docker なしでリンターを実行するための推奨方法としてネイティブモード
Qodana の Docker コンテナーを使用する Docker モード
Qodana Scan GitHub アクション(英語)を使用して Qodana を実行できます。
main、ブランチ、リリースブランチ、リポジトリに届くプルリクエストをネイティブモードで分析するには、次のワークフロー構成を .github/workflows/code_quality.yml ファイルに保存します。
この設定では、--linter オプションを使用してリンターを指定します。false 状態の --within-docker オプションは、ネイティブモードを有効にするために使用されます。
プライベート Maven リポジトリへのアクセスを管理するには、次の手順を実行します。
プライベート Maven リポジトリの資格情報への参照を含む
settings.xmlファイルを作成します。例:<servers> <server> <id>my-secret-repository</id> <username>${env.REPOSITORY_USERNAME}</username> <password>${env.REPOSITORY_PASSWORD}</password> </server> </servers>GitHub アクション構成で、
~/.m2/ディレクトリを作成し、そこにsettings.xmlファイルをコピーします。例:- uses: actions/setup-java@v4 with: settings-path: ${{ github.workspace }} - name: Place Maven settings.xml where Qodana expects it run: | mkdir -p ~/.m2 cp "${{ github.workspace }}/settings.xml" ~/.m2/settings.xmlGitHub アクション構成で、資格情報の値を環境変数にエクスポートします。例:
- name: Qodana Scan uses: JetBrains/qodana-action@v2026.1 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} REPOSITORY_USERNAME: ${{ secrets.REPOSITORY_USERNAME }} REPOSITORY_PASSWORD: ${{ secrets.REPOSITORY_PASSWORD }}
さらなる構成例については、GitHub アクションセクションを参照してください。
プロジェクトのルートディレクトリで次のコマンドを実行します。
この設定では、--linter オプションを使用してリンターを指定します。false 状態の --within-docker オプションは、ネイティブモードを有効にするために使用されます。
https://qodana.cloud/ 以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT 環境変数を宣言して上書きします。
ブラウザーで Qodana クラウド(英語)を開き、分析レポートを確認して分析を再設定してください。詳細については、ドキュメントの分析レポートのセクションを参照してください。
Docker モードはすべてのリンターで利用可能ですが、可能な限りネイティブモードを使用することをお勧めします。
main ブランチ、リリースブランチ、Docker モードでリポジトリに届くプルリクエストを分析するには、このワークフロー構成を .github/workflows/code_quality.yml ファイルに保存します。
さらなる構成例については、GitHub アクションセクションを参照してください。
この構成を Jenkinsfile に保存します。
さらなる構成例については、Jenkins セクションを参照してください。
これは、Linux 上で Qodana を実行する例です。その他の例は、GitLab CI/CD のセクションに掲載されています。
プロジェクトのルートディレクトリで、このスニペットを .gitlab-ci.yml ファイルに保存します。
さらなる構成例については、GitLab CI/CD セクションを参照してください。
TeamCity UI で、Qodana を実行するビルドの構成ページに移動します。
ページで、ボタンをクリックしてください。
開いたページで、 ランナーを選択します。
ページで、をクリックし、 ランナーを構成します。
は、他のビルドステップの中でこのステップを一意に識別します。
は、他のビルドステップの中でこのステップを一意に識別します。
は、このビルドステップをトリガーするビルド条件を構成します。
はビルドプロセスのディレクトリを設定します。詳細については、TeamCity のドキュメントを参照してください。タブで
Checkout directoryパラメーターが指定されている場合は、このフィールドを空のままにすることができます。はレポートを一意に識別し、単一のビルド内で複数の分析ステップが構成されている場合に複数のレポートを区別できるようにします。
チェックボックスは、TeamCity UI の「テスト」タブで Qodana レポートの可用性を構成します。このオプションを使用すると、検出された他の問題とともにコードベースの問題を表示できます。
は Qodana リンターを構成します。
ここで、JVM 用の Qodana、JVM 用の Qodana コミュニティ、または Android リンター用の Qodana コミュニティのいずれかを選択します。
はデフォルトで
Latestに設定されています。はインスペクションプロファイルを定義します:
qodana.starter (default)はデフォルトプロファイルの 1 つです。Profile nameではプロファイルを指定できます。詳細については、既存の Qodana プロファイルセクションを参照してください。Profile pathを使用すると、カスタムプロファイルへのパスを指定できます。このオプションを使用するには、qodana.yamlファイルでもカスタムプロファイルを構成する必要があります。
は、Qodana Cloud で生成されたプロジェクトトークンを構成します。
は、Docker イメージによって受け入れられる引数を設定します。詳細については、構成オプションセクションを参照してください。
を使用すると、デフォルトの Qodana 機能を拡張できます。詳細については、オプションの種類セクションを参照してください。
では、使用する Qodana CLI(英語) バージョンを指定できます。

ボタンをクリックしてください。
さらなる構成例については、TeamCity セクションを参照してください。
https://qodana.cloud/ 以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT 環境変数を宣言してそれを上書きします。
ブラウザーで Qodana クラウド(英語)を開き、分析レポートを確認して分析を再設定してください。詳細については、ドキュメントの分析レポートのセクションを参照してください。
IntelliJ IDEA Ultimate で、に移動します。
ダイアログでは、Qodana を設定できます。

このダイアログには次のコンポーネントが含まれています。
名前
説明
qodana.yamlファイルテキストフィールドでは、このファイルで Qodana が使用するコード分析を設定できます。利用可能な設定オプションの詳細について
オプション
Qodana Cloud にレポートを送信する場合は、このオプションをチェックし、Qodana クラウドで生成されたプロジェクトトークンを貼り付けてください。
オプション
このオプションをチェックすると、このダイアログで作成した Qodana 設定をプロジェクトのプロジェクトルートの
qodana.yamlファイルに保存できます。オプション
ベースライン機能を使用すると、特定の問題の分析をスキップできます
をクリックしてコードを分析してください。
ツールウィンドウの タブで、分析レポートを参照してください。
分析レポートを参照する
以下に説明するように、Qodana Cloud から最新の Qodana レポートを IntelliJ IDEA Ultimate にロードできます。
IntelliJ IDEA Ultimate で、に移動します。
ダイアログで、をクリックします。

これにより、認証ページにリダイレクトされます。
ローカルプロジェクトをリンクする Qodana クラウドプロジェクトを選択します。

オプションをチェックすると、Qodana クラウドから最も実際的で関連性の高いレポートを受け取ることができます。

この場合、IDE は Qodana Cloud を検索し、現在のリビジョン ID (HEAD) に対応するリビジョン ID を持つレポートを取得します。このレポートが見つからない場合、IDE は現在のリビジョン ID (HEAD) に最も近いリビジョン ID を持つ以前のレポートを選択します。それ以外の場合、IDE は Qodana Cloud から利用可能な最新のレポートを取得します。
ツールウィンドウの タブで、分析レポートを参照してください。
Qodana がプロジェクトを分析し、分析レポートを Qodana クラウドにアップロードした後、Qodana クラウド(英語)でプロジェクトに移動し、分析レポートを確認してください。

Qodana レポート UI の詳細については、「分析レポート」セクションを参照してください。
Qodana 構成を拡張
分析範囲の調整
Qodana は、GitHub(英語) でホストされる 2 つの定義済みプロファイルをすぐに使用できます。
qodana.starterはデフォルトのプロファイルであり、より包括的なqodana.recommendedプロファイルのサブセットです。qodana.recommendedは CI/CD パイプラインでの実行に適しており、主にデフォルトの IntelliJ IDEA Ultimate プロファイルを実装しています。詳細については、IntelliJ IDEA Ultimate のドキュメントを参照してください。
YAML および XML 形式の構成を使用して、Qodana プロファイルをカスタマイズできます。
ベースライン機能を有効にする
ベースライン機能を使用すると、特定の問題の分析をスキップできます。ベースラインに関する情報は、SARIF 形式のファイルに含まれています。
SARIF 形式のベースラインファイルへのパスを指定する --baseline オプションを含む .github/workflows/code_quality.yml ファイルにスニペットを保存します。
ベースラインを含む SARIF 形式のファイルへのパスを指定するには、--baseline オプションを使用してプロジェクトルートディレクトリでこのコマンドを実行します。
ブラウザーで Qodana クラウド(英語)を開き、分析レポートを確認して分析を再設定してください。詳細については、ドキュメントの分析レポートのセクションを参照してください。
このスニペットを、SARIF 形式のベースラインファイルへのパスを指定する args: --baseline qodana.sarif.json オプションを含む .github/workflows/code_quality.yml ファイルに保存します。
Jenkinsfile で、SARIF 形式のベースラインファイルへのパスを指定する --baseline <path/to/qodana.sarif.json> 行を含む構成を保存します。
これは、Linux 上で Qodana を実行する例です。その他の例は、GitLab CI/CD のセクションに掲載されています。
プロジェクトのルートディレクトリで、このスニペットを .gitlab-ci.yml ファイルに保存し、使用するリンターのコメントを解除します。
TeamCity UI で、Qodana を実行するビルドの構成ページに移動します。
ページで、ボタンをクリックしてください。
開いたページで、 ランナーを選択します。
ページで、をクリックし、 ランナーを構成します。
は、他のビルドステップの中でこのステップを一意に識別します。
は、他のビルドステップの中でこのステップを一意に識別します。
は、このビルドステップをトリガーするビルド条件を構成します。
はビルドプロセスのディレクトリを設定します。詳細については、TeamCity のドキュメントを参照してください。タブで
Checkout directoryパラメーターが指定されている場合は、このフィールドを空のままにすることができます。はレポートを一意に識別し、単一のビルド内で複数の分析ステップが構成されている場合に複数のレポートを区別できるようにします。
チェックボックスは、TeamCity UI の「テスト」タブで Qodana レポートの可用性を構成します。このオプションを使用すると、検出された他の問題とともにコードベースの問題を表示できます。
は Qodana リンターを構成します。
ここで、JVM 用の Qodana、JVM 用の Qodana コミュニティ、または Android リンター用の Qodana コミュニティのいずれかを選択します。
はデフォルトで
Latestに設定されています。はインスペクションプロファイルを定義します:
qodana.starter (default)はデフォルトプロファイルの 1 つです。Profile nameではプロファイルを指定できます。詳細については、既存の Qodana プロファイルセクションを参照してください。Profile pathを使用すると、カスタムプロファイルへのパスを指定できます。このオプションを使用するには、qodana.yamlファイルでもカスタムプロファイルを構成する必要があります。
は、Qodana Cloud で生成されたプロジェクトトークンを構成します。
は、Docker イメージによって受け入れられる引数を設定します。詳細については、構成オプションセクションを参照してください。
を使用すると、デフォルトの Qodana 機能を拡張できます。詳細については、オプションの種類セクションを参照してください。
このフィールドでは、
--baseline <path/to/qodana.sarif.json>オプションを使用してベースラインフィーチャを指定します。では、使用する Qodana CLI(英語) バージョンを指定できます。

ボタンをクリックしてください。
コマンドラインからベースライン機能を実行する方法を選択します。
IntelliJ IDEA Ultimate で、ツールウィンドウに移動します。
ツールウィンドウで、 タブをクリックします。
タブで、ボタンをクリックします。
開いたダイアログで、セクションを展開し、ベースラインファイルへのパスを指定して、をクリックします。
品質ゲートの有効化
すべてのリンターで利用可能なプロジェクトの問題の総数
問題の重大度に応じた複数の品質ゲートがすべてのリンターで利用可能
コードカバレッジしきい値は、JVM の Qodana と Android リンターの Qodana で使用できます。
次のスニペットを qodana.yaml ファイルに保存することで、プロジェクトの問題の総数、特定の問題の重大度、コードカバレッジに対して品質ゲートを構成できます。
次のスニペットを qodana.yaml ファイルに保存することで、プロジェクトの問題の総数と特定の問題の重大度に対して品質ゲートを構成できます。
プルリクエストの分析
Qodana Scan GitHub アクション(英語)はすべてのプルリクエストを自動的に分析するため、追加の構成を指定する必要はありません。この構成を .github/workflows/code_quality.yml ファイルに保存します。
コードの変更を分析するには、--diff-start オプションを使用し、比較のベースとなるコミットのハッシュを指定します。
ブラウザーで Qodana クラウド(英語)を開き、分析レポートを確認して分析を再設定してください。詳細については、ドキュメントの分析レポートのセクションを参照してください。
Qodana Scan GitHub アクション(英語)はすべてのプルリクエストを自動的に分析するため、追加の構成を指定する必要はありません。この構成を .github/workflows/code_quality.yml ファイルに保存します。
これは、Linux 上で Qodana を実行する例です。その他の例は、GitLab CI/CD のセクションに掲載されています。
プロジェクトのルートディレクトリに、次のスニペットを含む .gitlab-ci.yml ファイルを保存します。
この構成により、マージリクエスト分析が可能になります。
プルリクエストとマージリクエストを分析するための TeamCity の構成に関する情報は、TeamCity ドキュメントポータルで入手できます。
コードの変更を分析するには、--diff-start オプションを使用し、比較のベースとなるコミットのハッシュを指定します。
サポートされているテクノロジーと機能
へのサポート | 名前 | JVM の場合は Qodana、Android の場合は Qodana | JVM の Qodana コミュニティ | Android のための Qodana コミュニティ |
|---|---|---|---|---|
プログラミング言語 | Java Kotlin Groovy JavaScript and TypeScript | ✔ ✔ ✔ ✔ | ✔ ✔ ✔ | ✔ ✔ ✔ |
フレームワークおよびライブラリ | JavaBeans JUnit Lombok TestNG JPA Reactive Streams JavaFX Java EE JAX-RS JSP Spring Node.js React Ktor Vue Apache Velocity Android ルーム | ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ | ✔ ✔ ✔ ✔ | ✔ ✔ ✔ ✔ |
データベースと ORM | Hibernate ORM MongoDB Oracle MySQL PostgreSQL SQL SQL サーバー | ✔ ✔ ✔ ✔ ✔ ✔ ✔ | ||
マークアップ言語 | CSS FreeMarker HTML JSON および JSON5 RELAX NG XML XPath XSLT YAML TOML Less SASS/SCSS PostCSS JSONPath | ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ | ✔ ✔ ✔ ✔ | ✔ ✔ ✔ ✔ ✔ ✔ |
スクリプト言語 | シェルスクリプト 式言語 (EL) | ✔ ✔ | ✔ | |
ビルド管理 | Gradle Maven | ✔ ✔ | ✔ ✔ | ✔ ✔ |
その他 | 正規表現 構造検索 HTTP クライアント | ✔ ✔ ✔ | ✔ ✔ | ✔ ✔ |
Qodana の機能 | インサイト * ライセンス監査 * 脆弱性チェッカー * 汚染分析 ** | ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ | ✔ ✔ | ✔ ✔ |
* Ultimate Plus ライセンスでのみ利用可能です。
** JVM リンターは Qodana のみでサポートされます。Ultimate Plus ライセンスでのみ利用可能です。
関連ページ:
Qodana のエディション
ニーズに応じて、次の表に示す適切なライセンスを選択できます。Community フリー孤立した問題の解決に最適 Ultimate 詳細については、サブスクリプションのオプションと価格を参照してくださいさまざまなビジネスタスクを解決するために設計されています。試用版をご利用いただけます。Ultimate Plus 詳細については、サブスクリプションのオプションと価格を参照してください Ultimate ライセンスと同じ機能がすべて含まれていますが、追加機能と無制限の履歴データストレージも含まれています。試用...
クイックスタート
Qodana Cloud の使用を開始するには、Qodana クラウド Web サイトに移動してください。JetBrains アカウントで続行するボタンをクリックして JetBrains アカウントを作成し、Qodana クラウドにログインできます。未登録ユーザーの場合は、Qodana によってすでに分析されたデモプロジェクトを調べることができます。レポートを詳しく調べるには、レポートセクションを参照してください。Qodana Cloud に初めてログインすると、組織、チーム、プロジェクトを作成す...
組織
組織は、Qodana クラウドのすべてのエンティティのトップレベルの構造を提供します。すべての組織は、特定の JetBrains アカウントに基づいて作成されます。選択に応じて、プライベートまたはパブリックになります。Qodana Cloud のすべてのアカウントは、デフォルトの組織となる組織に基づいています。Qodana Cloud UI の左上にあるリストを使用して、組織間を移動できます。組織を作成する:プライベート組織またはパブリック組織を作成できます。プライベート組織に保存されたレポー...
チーム
チームは、特定のプロジェクトを蓄積する組織の一部です。チームを使用すると、Qodana クラウドの専用プロジェクトごとにユーザーをグループ化できます。チームを作成する:プロジェクト設定段階で、Qodana Cloud はチームの作成を支援するため、この手順は追加のチームを作成する場合にのみ必要です。組織ページで、「」をクリックします。これにより、ダイアログが開きます。ダイアログで、チーム名と可視性を指定して、をクリックします。チームを移動する:組織ページでチームのタイルをクリックするか、左側...
プロジェクト
プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:新しい組織を作成する際、Qodana Cloud は最初のプロジェクトの設定を支援するため、これらの手順は追加のプロジェクトを作成する場合にのみ関連します。チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その...
最初のビルドを構成して実行する
このチュートリアルでは、TeamCity の基本機能について説明し、一般的なプロジェクトの設定方法を示します。このガイドの最後には、Gradle を使用してサンプル Java アプリケーションをビルドおよびテストするワークフローを作成します。このチュートリアルで取り上げるトピック: 基本的な TeamCity エンティティに慣れる、リモートリポジトリへのアクセス、パイプライン、ジョブ、ビルドステップの操作、TeamCity ワークフローを実行し、その結果をインスペクションする、障害の処理、プルリク...