Qodana 2024.1 ヘルプ

Android のための Qodana コミュニティ

official JetBrains project

Android のための Qodana コミュニティリンターの Docker イメージは、さまざまな使用シナリオをサポートするために提供されています。

  • 継続的インテグレーションの一環として分析を定期的に実行する (CI ベースの実行 )

  • シングルショット分析 (たとえば、ローカルで実行)。

IntelliJ IDEA コードインスペクションに精通しており、エディター外での静的解析で何を期待できるかを知っている場合は、次のセクションをスキップして既存のプロファイルの使用から続行できます。

現場での作業を開始したばかりの場合は、提供されているデフォルトのセットアップを続行することをお勧めします。コードベースで実行される最も一般的なチェックの結果が表示されます。後で、ニーズに合わせて調整することができます。

Android リンターの Qodana Community は、2 つの方法を使用して実行できます。Qodana CLI(英語) が最も簡単な方法です。必要に応じて、インストールページ(英語)を確認して、Qodana CLI をインストールします。あるいは、「Docker イメージ」タブから Docker コマンドを使用することもできます。

分析をローカルで実行する

  1. Docker Hub からイメージをプルします (latest バージョンに更新する場合にのみ必要です)。

    docker pull jetbrains/qodana-jvm-android
  2. 次のコマンドを実行します。

    docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm-android

    ここで、source-directoryoutput-directory は、それぞれプロジェクトソースコードディレクトリと分析結果ディレクトリへの完全なローカルパスです。QODANA_TOKEN 変数は、Ultimate と Ultimate Plus リンターに必要なプロジェクトトークンを参照します。

このコマンドはソースコードの分析を実行し、Web サーバーを起動して結果を簡単に表示します。ブラウザーで Qodana クラウド(英語)を開いて、インスペクションの結果を調べます。ここで分析を再構成することもできます。詳細については、インスペクションレポートを参照してください。

ユーザーインターフェースが不要で、生データを確認する場合は、次のコマンドを使用します。

docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm-android

output-directory には必要な結果がすべて含まれます。テクニカルガイドの説明に従って、コマンドをさらに調整できます。

解析を連続して数回実行する場合は、docker run で再度使用する前に結果ディレクトリをクリーンアップしていることを確認してください。

プロジェクトのルートディレクトリで次のコマンドを実行してコードをインスペクションし、インスペクションレポートをローカルで表示します。

ユーザーインターフェースが不要で、生データを確認する場合は、次のコマンドを使用します。

qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ -l jetbrains/qodana-jvm-android \ --results-dir <output-directory>

output-directory は、SARIF 形式のレポートが保存されるディレクトリを指定します。QODANA_TOKEN 変数は、Ultimate と Ultimate Plus リンターに必要なプロジェクトトークンを参照します。

CI で分析を実行する

次のコマンドを汎用シェルエグゼキュータのタスクとして使用します。

docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm-android

ここで、source-directoryoutput-directory は、それぞれプロジェクトソースコードディレクトリと分析結果ディレクトリへのフルパスです。QODANA_TOKEN 変数は、Ultimate と Ultimate Plus リンターに必要なプロジェクトトークンを参照します。

クオリティゲート機能を使用して、特定の問題数に達したときにビルドを失敗させること、およびベースライン機能を使用して、Android 実行の新しい Qodana コミュニティをベースラインとして選択された初期実行と比較することを検討してください。非 root として実行するもサポートされています。

プロジェクトのルートディレクトリで次のコマンドを実行します。

qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ -l jetbrains/qodana-jvm-android \ --results-dir <output-directory>

これにより、インスペクションの結果が output-directory で指定されたディレクトリに保存されます。

--fail-threshold オプション(英語)を使用して、クオリティゲート機能を適用し、特定の問題数に達したときにビルドを失敗させることもできます。

ベースライン機能は、--baseline および --baseline-include-absent オプションを使用して、Android 実行の新しい Qodana コミュニティを初期実行と比較します。

既存のプロファイルの使用

このセクションは、IntelliJ IDEA インスペクションプロファイルによるコード分析の構成に慣れているユーザーを対象としています。

複数の方法で既存のプロファイルへの参照を渡すことができます。ここではいくつかの例を示します。

  • コンテナー内のプロファイルを /data/profile.xml にマッピングします。

    docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -v <inspection-profile.xml>:/data/profile.xml \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm-android
  • プロジェクト .idea/inspectionProfiles/ フォルダー内のプロファイルの名前を使用します。

    docker run \ -v <source-directory>/:/data/project/ \ -v <output-directory>/:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm-android \ --profile-name <custom-profile-name>

複数の方法で既存のプロファイルへの参照を渡すことができます。以下にいくつかの例を示します。両方のコマンドをプロジェクトのルートディレクトリで実行します。

  • コンテナー内のプロファイルのマッピング:

    qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ -l jetbrains/qodana-jvm-android \ --results-dir <output-directory> \ --profile-path <path-to-profile> \ --show-report
  • プロジェクト .idea/inspectionProfiles/ フォルダー内のプロファイルの名前を使用します。

    qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ -l jetbrains/qodana-jvm-android \ --results-dir <output-directory> \ --profile-name <custom-profile-name> \ --show-report

qodana.yaml 経由で設定する

Qodana は分析構成の qodana.yaml ファイルを自動的に認識するため、追加のパラメーターを渡す必要はありません。

インスペクションプロファイルへの参照は、特定の順序で解決されます。形式については、「YAML ファイル」を参照してください。

プラグイン管理

有料プラグインはまだサポートされていません。各ベンダーは CI の使用に関するライセンス条件を明確にし、それを機能させるために当社と協力する必要があります。

無料の IntelliJ プラットフォームプラグインまたはカスタムプラグインは、次のコマンドを使用してコンテナープラグインのディレクトリにマウントすることで追加できます。

docker run \    -v /your/custom/path/%\pluginName%:/opt/idea/plugins/%\pluginName% \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-jvm-android

詳細については、テクニカルガイドを参照してください。

使用統計

JetBrains EAP ユーザー契約(英語)によると、ユーザーエクスペリエンスをさらに向上させるために、サードパーティのサービスを使用して機能の使用状況を分析できます。すべてのデータは匿名で収集されます。使用する Docker コマンドのオプションを調整することで、使用状況統計のレポートを無効にできます。詳細については、テクニカルガイドを参照してください。

関連ページ:

Android のための Qodana コミュニティ

Qodana Community for Android は、Android サポートプラグインを備えた IntelliJ IDEA に基づいており、Android プロジェクトの静的分析を提供します。IntelliJ IDEA のすべての機能が組み込まれており、次のことに役立ちます。異常なコードと潜在的なバグを検出する、デッドコードを削除する、スペルの問題をハイライトする、全体的なコード構造を改善する、コーディングのベストプラクティスを紹介する、インスペクションの結果を Qodana クラウドにアッ...

インスペクションレポート

Qodana を使用すると、ローカルまたは Qodana クラウドで、インタラクティブでユーザーフレンドリーな形式でインスペクションレポートを確認できます。各レポートには次のタブが含まれています。実際の問題は、Qodana が最新のインスペクション中に検出した問題を明らかにします、ベースラインには、ベースラインとしてマークされ、それ以降修正されていない問題がリストされます。構成により、将来の使用に備えて Qodana を構成できます、ライセンス監査は

ベースライン

ベースラインは、特定の Qodana 実行時に取得され、ファイルに含まれているコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新しい問題、変更されていない問題、解決された問題を確認できます。この機能は、Community、Ultimate、Ultimate Plus ライセンスとその試用版で利用可能なすべてのリンターでサポートされています。使い方:ベースラインなしで Qodana を実行すると、現在の実行時に検出された問題を確認...