構成オプション
このセクションでは、Docker、GitHub アクション、GitLab CI/CD などの実行に使用されるツールの構成を使用して、Qodana リンターを構成する方法について説明します。
多くの場合、このセクションで説明する設定は、このセクションでも説明する qodana.yaml ファイル経由で構成することもできます。
オプションの種類
Qodana は、以下に示す 3 種類のオプションを使用して設定できます。
オプション型 | サンプル |
|---|---|
オプション名とその引数の間に等号 ( |
|
オプション名とその引数の間にスペース文字 ( |
|
引数は必要ありません |
|
これらすべてのオプションを呼び出すコマンドの例を次に示します。
ランナー設定で、フィールドを見つけて、プラグインファイルへのパスを指定します。
プロジェクトの構成
オプション | 説明 | デフォルト値 |
|---|---|---|
| | なし |
| 強制的に初期化し、既存の有効な | なし |
| プロジェクトのルートディレクトリを指定します |
|
qodana init <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
プロジェクトを分析する
オプション | 説明 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
また、Qodana を含む任意の Docker イメージを使用することもできます。 | ||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Docker コンテナー内で分析を実行するかどうかを定義します。 デフォルト値は、現在の環境とプロジェクトの分析に基づいて動的に定義されます。 ネイティブモードは現在、次の Qodana リンターで利用できます。
| ||||||||||||||||||||||||||||||
| 分析対象プロジェクトのルートディレクトリ。デフォルト値は | ||||||||||||||||||||||||||||||
| Git リポジトリのルートへのパス。このディレクトリは | ||||||||||||||||||||||||||||||
| Qodana 分析レポートの保存先ディレクトリを上書きします。デフォルト値は | ||||||||||||||||||||||||||||||
| キャッシュディレクトリを上書きします。デフォルト値は | ||||||||||||||||||||||||||||||
| Qodana HTML レポートを保存するディレクトリを上書きします。デフォルト値は | ||||||||||||||||||||||||||||||
| Qodana によって発見されたすべての問題を CLI 出力に印刷します | ||||||||||||||||||||||||||||||
| GitLab CI/CD でサポートされている SARIF 形式のコード気候(英語)レポートを生成します。レポートは | ||||||||||||||||||||||||||||||
| Bitbucket クラウドでサポートされているコードインサイト(英語)レポートを生成します。デフォルトでは、Qodana が Bitbucket パイプラインで実行されている場合、このオプションは有効になっています。 | ||||||||||||||||||||||||||||||
| 分析を実行する前にローカル Qodana キャッシュをクリアします | ||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||
| レポートを提供するポート。デフォルト値は | ||||||||||||||||||||||||||||||
| 報告書を届ける港 | ||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||
| Qodana Cloud で使用される一意のレポート識別子 (GUID)。デフォルト値は | ||||||||||||||||||||||||||||||
| ベースライン状態の計算で使用される既存の SARIF レポートへのパスを指定します | ||||||||||||||||||||||||||||||
| 出力レポートに存在しないとマークされたベースラインの問題を含める | ||||||||||||||||||||||||||||||
| コミット履歴全体を調べ、各コミットの分析を実行します。 | ||||||||||||||||||||||||||||||
| Git をリセットし、指定されたコミット以降に変更されたファイルのみの分析を実行します。 | ||||||||||||||||||||||||||||||
| 品質ゲートとして機能する問題数を設定します。品質ゲートのしきい値に達すると、分析はゼロ以外の終了コードで終了します。 | ||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||
| 分析する必要がある | ||||||||||||||||||||||||||||||
| プロジェクトの VCS ルートディレクトリを指定してください。このオプションは Git 関連の操作に必須です | ||||||||||||||||||||||||||||||
| 分析する必要がある | ||||||||||||||||||||||||||||||
| プロファイル名を指定 | ||||||||||||||||||||||||||||||
| プロファイルファイルへのパスを指定します | ||||||||||||||||||||||||||||||
| プロモーションインスペクションを使用する場合はこのオプションを | ||||||||||||||||||||||||||||||
| Qodana の実行シナリオをオーバーライドします。現在、次の実行シナリオが利用可能です。
| ||||||||||||||||||||||||||||||
| 分析用のコードカバレッジデータを含むディレクトリを指定します | ||||||||||||||||||||||||||||||
| クリーンアップを含む利用可能なすべてのクイックフィックス戦略を適用します。詳細については、クイックフィックスセクションを参照してください。 | ||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||
| Qodana の実行中に使用する JVM プロパティを設定します。 | ||||||||||||||||||||||||||||||
| HTML レポートを生成します。このオプションはデフォルトで有効になっています | ||||||||||||||||||||||||||||||
| Qodana 分析時間制限をミリ秒単位で設定します。制限時間に達すると分析は終了し、プロセスは | ||||||||||||||||||||||||||||||
| デフォルトの | ||||||||||||||||||||||||||||||
| 変更分析で比較の基準となるコミットのハッシュを設定します。 | ||||||||||||||||||||||||||||||
| 変更分析の終了として機能するコミットのハッシュを設定します。これにより、 | ||||||||||||||||||||||||||||||
| デフォルトの実行シナリオを上書きして、増分分析を逆順に実行します。これにより、増分分析で問題が検出されなかった場合、メインコードベースの分析をスキップできます。 | ||||||||||||||||||||||||||||||
| 匿名統計の送信を無効にする | ||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||
| 追加の引数を設定します。詳細については C / C++ セクションを参照してください | ||||||||||||||||||||||||||||||
| ソリューションファイルへの相対パスを設定します。詳細については、.NET セクションを参照してください。 | ||||||||||||||||||||||||||||||
| プロジェクトファイルへの相対パスを設定します。詳細については .NET セクションを参照してください | ||||||||||||||||||||||||||||||
| ビルド構成を指定します。詳細については .NET セクションを参照してください | ||||||||||||||||||||||||||||||
| ビルドプラットフォームを指定します。詳細については .NET セクションを参照してください | ||||||||||||||||||||||||||||||
| 分析の前にプロジェクトの構築をスキップします。詳細については .NET セクションを参照してください | ||||||||||||||||||||||||||||||
| Qodana コンテナーの環境変数を定義します。複数の変数を指定できます。セキュリティ上の理由から、Qodana CLI はホストオペレーティングシステムから環境変数を読み取らないため、Qodana に必要なすべての変数を明示的に指定する必要があります。 | ||||||||||||||||||||||||||||||
| Qodana コンテナーに追加のボリュームを定義します。複数のボリュームを指定できます。例: | ||||||||||||||||||||||||||||||
| Qodana コンテナーを実行するユーザー。ユーザー ID - | ||||||||||||||||||||||||||||||
| 最新の Qodana コンテナーのプルをスキップする |
qodana scan <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
分析レポートを Qodana クラウドに送信する
オプション | 説明 |
|---|---|
| Qodana Cloud で使用される一意のレポート識別子(GUID)。デフォルト値は |
| |
| Qodana Cloud に送信するレポートに使用するリンターをオーバーライドします |
| Qodana Cloud にレポートが送信されるプロジェクトのルートディレクトリ。デフォルト値は |
| Qodana HTML レポートを保存するディレクトリを上書きします。デフォルト値は |
| Qodana レポートの送信元となるディレクトリを上書きします。デフォルト値は |
qodana send <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
報告の表示
オプション | 説明 |
|---|---|
| |
| レポートディレクトリのみを開き、提供しない |
| 表示するレポートのリンターをオーバーライドする |
| レポートを提供するポートを指定します。デフォルト値は |
| レポートを表示するプロジェクトのルートディレクトリ。デフォルト値は |
| Qodana HTML レポートを保存するディレクトリを上書きします。これは |
| 分析レポートの保存先ディレクトリを上書きします。デフォルト値は |
qodana show <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
SARIF 形式のファイルを表示する
オプション | 説明 | デフォルト設定 |
|---|---|---|
| SARIF 形式のファイルへのパス |
|
qodana view <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
コントリビューターの数を数える
プロジェクトへのコントリビューターに関する情報を収集するには、次のオプションを使用して Qodana を実行できます。
オプション | 説明 | デフォルト設定 |
|---|---|---|
| アクティブなコントリビューターの数を計算するために使用する過去の日数 | 90 |
| 出力形式。使用可能な値は |
|
| 複数のプロジェクトをチェックするために複数指定できるプロジェクトのディレクトリ |
|
qodana contributors <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
プロジェクトの統計情報を表示
これらのオプションを使用すると、言語やコード行などのプロジェクトに関する情報を表示できます。
オプション | 説明 |
|---|---|
| |
| プロジェクトディレクトリ。このオプションを複数回指定して、複数のプロジェクトをチェックすることができます。指定しない場合は、現在のディレクトリが使用されます。 |
qodana cloc <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
Qodana イメージをプルする
これらのオプションを使用すると、使用したい Qodana リンターをプルできます。
オプション | 説明 |
|---|---|
| |
| 取得したいイメージを指定します |
| 取得したいリンターを指定します |
| 分析対象プロジェクトのルートディレクトリ。指定しない場合は、現在のディレクトリが使用されます。 |
これらのオプションは、Qodana CLI の qodana pull <options> コマンドを使用して呼び出すことができます。Qodana CLI は、 qodana.yaml ファイル設定または --linter オプションを使用してリンターに関する情報を取得します。
自動補完スクリプトを生成する
これらのオプションを使用すると、特定のシェルの自動補完スクリプトを生成できます。
コマンド | 説明 |
|---|---|
| bash の自動補完スクリプトを生成する |
| 魚の自動補完スクリプトを生成する |
| PowerShell の自動補完スクリプトを生成する |
| zsh の自動補完スクリプトを生成する |
qodana completion <options> コマンドを使用して、Qodana CLI でこれらのオプションを呼び出すことができます。
更新チェックとログレベルを構成する
オプション | 説明 |
|---|---|
| Qodana CLI の新しいバージョンに関するチェックと通知を無効にする |
| Qodana CLI の出力のログレベルを変更します。例: |
構成例
リンター内のパス
この表には、Qodana リンターで使用可能なパスがリストされています。
パス | 説明 |
|---|---|
| プロジェクトのルートディレクトリ |
| 分析レポートを保存するディレクトリ。Qodana を実行する前に空にしておく必要があります |
| IDE 配布ディレクトリ |
| IDE 構成ディレクトリ |
| |
| プロファイルファイルをバインドするディレクトリ |
| Maven プロジェクトの依存関係 |
| Maven の |
| Gradle プロジェクトの依存関係 |
| NuGet プロジェクトの依存関係 |
| コードカバレッジファイルをマッピングするためのディレクトリ |
これらのパスを適用する方法の例をいくつか以下に示します。
デフォルトのインスペクションプロファイルをオーバーライドする
デフォルトでは、Qodana は qodana.starter プロファイルを採用しますが、代わりに独自のプロファイルをバインドして使用することもできます。
ランナー設定で、 ドロップダウンリストからオプションを選択します。ドロップダウンリストに表示されるフィールドに、プロジェクトルートからの相対パスでプロファイルファイルへのパスを指定します。
プロファイルの詳細については、このドキュメントのプロファイルの解決順序と既存のプロファイルを設定するセクションを参照してください。
Gradle 設定を上書きする
JVM リンターの場合、デフォルトの Gradle 設定をオーバーライドできます。
ランナー設定で、フィールドを見つけて、新しい Gradle 設定を含むファイルへのパスを指定します。
Qodana ログの表示
ツールによっては、Qodana によって生成されたログファイルを表示できます。
$(pwd)/.qodana/results/ ディレクトリを Docker イメージの /data/results ディレクトリにマウントできます。
Qodana の実行が完了すると、$(pwd)/.qodana/results/ ディレクトリ内のログファイルを表示できます。
Qodana を実行した後、プロジェクトルートで $ qodana show -d コマンドを実行して、ログファイルが含まれるディレクトリを開きます。
/data/results ディレクトリを使用して Qodana の動作を調べるには、いくつかのオプションがあります。
/data/results/projectStructureディレクトリ。このディレクトリにある
Modules.jsonファイルには、Qodana によって検出されたすべてのモジュールのリストが含まれています。これは、IntelliJ IDEA でプロジェクトを開いた際に表示されるリストと一致するはずです。一致しない場合は、Maven の場合はpom.xmlファイル、Gradle 構成の場合はbuild.gradleファイルを確認してください。このディレクトリの
SDKs.jsonファイルには、Python の場合のインタープリターパスが含まれています。/data/results/ディレクトリには、考えられる問題を検出した各インスペクションがID.jsonという名前の独自のファイルを作成します。ここで、IDは、qodana.yamlでインスペクションを含めるか除外するために使用できるインスペクション名です。インスペクション ID の完全なリストは、/groups/*/inspections/*/shortNameパターンを使用して/data/results/.descriptions.jsonファイルで検索できます。/data/results/log/idea.logでは、疑わしい警告を調査できます。
ディレクトリ
これらのオプションを使用すると、Docker イメージパスセクションで説明されているパスをオーバーライドできます。
オプション | デフォルト設定 | |
|---|---|---|
| プロジェクトの VCS ルートディレクトリを指定してください。このオプションは Git 関連の操作に必須です | なし |
| インスペクション対象プロジェクトのルートディレクトリは、 外部ディレクトリに含まれるファイルとディレクトリは、Qodana の実行中は使用されません。 |
|
| Qodana インスペクションの結果を保存するディレクトリ |
|
| 生成された HTML レポートを保存するディレクトリ。レポートを開くには、 |
|
| キャッシュを保存するディレクトリ |
|
| | なし |
| 分析する必要がある | なし |
レポートディレクトリを上書きする
この Docker コマンドは、--report-dir オプションを使用してデフォルトのレポートディレクトリをオーバーライドし、 --save-report オプションを使用して生成されたレポートをローカルファイルシステムに保存します。
生成されたレポートは、このコマンドの -v <html-report-directory>:/data/results/newreportdir/ 行で設定されたとおりにローカルファイルシステムに保存されます。
リポジトリ内の特定のプロジェクトディレクトリを分析する
一般的なプロジェクト構造は、次のようなディレクトリ構造になります。
ここで、repo/.git ディレクトリには Qodana がアクセスできる情報が含まれており、repo/project ディレクトリには Qodana がインスペクションする必要があるプロジェクトが含まれています。これらのサンプルはすべて、 --project-dir オプションを使用して repo/project ディレクトリをマウントしますが、QODANA_TOKEN 変数は Qodana クラウドプロジェクトトークンを参照します。
キャッシュの依存関係
解析間でキャッシュを保持することで、Qodana のパフォーマンスを向上させることができます。例: Maven、Gradle、npm、Yarn、NuGet などのパッケージおよび依存関係管理ツールは、ダウンロードした依存関係のローカルキャッシュを保持します。
デフォルトでは、Qodana はコンテナー内の /data/cache ディレクトリにキャッシュを保存します。 --cache-dir オプションを使用して、この場所をオーバーライドできます。このデータはリポジトリごとであるため、branch-a からビルドチェック branch-b にキャッシュを渡すことができます。この場合、新しい依存関係が追加された場合のみダウンロードされます。
GitHub ワークフローでは、依存関係キャッシュ(英語)を使用できます。GitLab CI/CD には、プロジェクトディレクトリ内にのみ(英語)保存できるキャッシュ(英語)もあります。この場合、 qodana.yaml を介してインスペクションからキャッシュディレクトリを除外できます。
このコマンドは、ローカルディレクトリを Docker イメージの /data/cache ディレクトリにマップし、キャッシュをローカルファイルシステムに保存します。
--cache-dir オプションを使用すると、キャッシュディレクトリをオーバーライドできます。
ランナー設定で、フィールドを見つけて、キャッシュディレクトリへのパスを指定します。
プロファイル
デフォルトでは、Qodana は qodana.starter プロファイルを使用してコードをインスペクションします。
Qodana プロファイルは、 qodana.yaml ファイル内、またはこの表のオプションを使用して構成および上書きできます。
オプション | 説明 | デフォルト設定 |
|---|---|---|
| | 有効 |
| 定義済み Qodana プロファイルのリストにあるプロファイル名、または XML 形式のプロファイルファイルに |
|
| プロファイルファイルへの絶対パス。 | なし |
| | Qodana が |
プロファイル名
--profile-name オプションを使用すると、デフォルトのプロファイルまたはカスタムプロファイルのプロファイル名を使用して Qodana を実行できます。
このコマンドを使用すると、デフォルトのプロファイルをオーバーライドし、 qodana.recommended プロファイルを使用して Qodana を実行できます。
ランナー設定で、フィールドを見つけて、プロファイル名を指定します。
カスタムプロファイルで Qodana を実行するには、実際のプロファイル名を使用します。
次のようにカスタムプロファイルをバインドできます。
ランナー設定で、フィールドを見つけて、カスタムプロファイル名を指定します。
プロファイルパス
--profile-path オプションを使用すると、プロファイルを含むファイルへのパスをオーバーライドできます。
このコマンドを使用すると、ファイルをプロファイルディレクトリにバインドでき、--profile-path オプションは、どのプロファイルファイルを読み取るかを Qodana に指示します。
ランナー設定で、フィールドを見つけて、カスタムプロファイルのパスを指定します。
カスタム構成ファイル
プロジェクトには、YAML 形式のファイルに含まれる複数の Qodana 構成を含めることができます。これは、モノレポプロジェクトを分析したり、単一の CI ジョブを実行したりする場合に役立ちます。
--config オプションと、プロジェクトルートからの相対的なファイルへのパスを使用できます。
ランナー設定で、フィールドを見つけて、カスタム設定ファイルへのパスを指定します。
ベースライン
ベースライン実行モードでは、新しい Qodana 実行がそれぞれ初期実行と比較されます。これは、古い問題を修正する可能性がなく、新しい問題の発生を防ぎたい場合に役立ちます。
ベースライン機能を使用するには、まず Qodana を実行し、レポート UI でベースラインと見なされる問題を選択します。最後に、ベースライン問題を含む SARIF 形式のファイルを保存します。
これはベースライン関連のオプションのリストです。
オプション | 説明 |
|---|---|
| Qodana をベースラインモードで実行します。ベースライン状態の計算で使用される既存の SARIF レポートへのパスを指定します |
| 現在の分析では欠落しているベースライン実行の結果を出力レポートに含める |
このコマンドは、すべてのベースラインオプションを呼び出します。
ランナー設定で、フィールドを見つけてベースラインを設定します。
ここで、<path-to-the-SARIF-file> はプロジェクトルートを基準とした qodana.sarif.json ファイルへのパスであり、以前の Qodana 実行から取得されます。--baseline-include-absent が呼び出されると、インスペクションの結果には、存在しない問題、またはベースライン実行でのみ検出され、現在の実行では検出されなかった問題が含まれます。
この実行に基づいて、SARIF 出力レポートにはベースライン状態に関する問題ごとの情報が含まれます。
コードカバレッジ
コードカバレッジファイルを含むディレクトリを Qodana リンターイメージの /data/coverage ディレクトリにマッピングすることで、コードカバレッジを実行できます。
ランナー設定で、フィールドを見つけて、コードカバレッジの結果を含むファイルへのパスを指定します。
レポート
この表には、レポートに関連するオプションが含まれています。
オプション | 説明 |
|---|---|
| HTML 形式のレポートを生成して保存する |
| HTML 形式のレポートを提供します。デフォルトでは、ポート |
レポートを保存する
Docker コマンドの --save-report オプションを使用すると、生成された HTML レポートをローカルファイルシステムに保存できます。
レポートを表示する
このコマンドはホストマシンのポート 4040 で Web サーバーを実行するため、レポートは http://localhost:4040 で利用できるようになります。
あるいは、プロジェクトルートで qodana show コマンドを実行できます。
Web サーバーを停止するには、Docker コンソールで Ctrl-C を押します。
クオリティゲート
Qodana を使用すると、しきい値として機能する品質ゲートまたは問題の数を構成できます。しきい値を超えると、インスペクションの実行は終了します。
オプション | 説明 |
|---|---|
| 品質ゲートとして機能する問題数を設定します |
以下は、問題の数が 10 を超えた場合にビルドを失敗するように Qodana に指示するコマンドです。
ランナー設定で、フィールドを見つけて品質ゲートを指定します。
ベースラインモードを有効にして Qodana を実行すると、しきい値は新しい問題と存在しない問題の合計として計算されます。変更されていない結果は無視されます。
クイックフィックス
クイックフィックス戦略をコードベースに適用するには、--fixes-strategy オプションを呼び出します。
ランナー設定で、フィールドを見つけて、優先するクイックフィックス戦略を指定します。
Properties
--property= オプションを使用すると、さまざまな Qodana パラメーターをオーバーライドできます。
オプション | 説明 |
|---|---|
| 次の表記を使用して JVM プロパティを設定します。 --property=property.name=value1,...,valueN このオプションは、複数の JVM プロパティを設定するために複数回繰り返すことができます。 |
INFO メッセージを STDOUT に記録する
STDOUT のデフォルトのログレベルは WARN です。idea.log.config.file プロパティを使用してオーバーライドできます。
ランナー設定で、フィールドを見つけて、優先するクイックフィックス戦略を指定します。
ユーザー統計を無効にする
使用状況統計のレポートを無効にするには、--property オプションの idea.headless.enable.statistics 値を調整します。
ランナー設定で、フィールドを見つけて、必要なプロパティを指定します。
プラグインの構成
idea.required.plugins.id および idea.suppressed.plugins.id プロパティを使用すると、特定の実行に必要なプラグインと、抑制されるプラグインのリストを指定できます。
ランナー設定で、フィールドを見つけて、必要なプロパティを指定します。
設定タイムアウトの設定
以下のプロパティを使用すると、設定ステージのタイムアウトを設定できます。
プロパティ | リンターで使用可能 |
|---|---|
| |
|
以下に、プロパティの使用例を示します。
変化の分析
オプション | 説明 |
|---|---|
| マージやプルリクエストなどの変更セットに対して増分分析を実行する |
作業を終えて変更を分析したい場合は、--diff-start オプションを使用して、比較のベースとなるコミットのハッシュを指定できます。詳細については、増分分析セクションを参照してください。
ランナー設定で、フィールドを見つけてコミットハッシュを指定します。
2 つのコミット間の変更セットを分析するには、--diff-start と --diff-end の両方のオプションを使用します。
ランナー設定で、フィールドを見つけてコミットハッシュを指定します。
シナリオの実行
オプション | 説明 | デフォルト設定 |
|---|---|---|
| デフォルトの実行シナリオをオーバーライドする |
|
default 実行シナリオの適用は、次のコマンドを実行することと同じです。
ランナー設定で、フィールドを見つけて、優先する実行シナリオを指定します。
PHP バージョンの移行シナリオの場合は、次のコマンドを使用します。
ランナー設定で、フィールドを見つけて、PHP バージョン移行実行シナリオを指定します。
ヒープサイズを変更する
デフォルトでは、ヒープサイズはホスト RAM の 80% に設定されています。この設定は、_JAVA_OPTIONS 変数を使用して構成できます。
ランナー設定で、フィールドを見つけて、_JAVA_OPTIONS 変数を使用してヒープサイズを設定します。
ヒープの構成の詳細については、Oracle ドキュメントのヒープチューニングパラメーター(英語)を参照してください。
idea.properties ファイルをオーバーライドする
idea.properties は、IDE ファイルのデフォルトの場所を構成します。
IDEA_PROPERTIES 変数を使用して idea.properties ファイルをオーバーライドできます。
ランナー設定で、フィールドを見つけて、IDEA_PROPERTIES 変数を設定します。
ルートユーザーと非ルートユーザーを設定する
デフォルトでは、Docker コンテナーは root ユーザーで実行されるため、Qodana はプロジェクト情報を読み取り、インスペクション結果を書き込むことができます。実行後、results/ ディレクトリ内のすべてのファイルは root ユーザーによって所有されます。
これを解決するには、コンテナーを通常のユーザーとして実行します。
この場合、ホスト上の results/ ディレクトリはすでに作成され、所有されている必要があります。そうでない場合、Docker は root ユーザーとしてそれを作成し、Qodana はそれに書き込むことができません。
TeamCity および Qodana CLI(英語) は、現在の非 root ユーザーを使用して Qodana を実行します。 bootstrap セクションで起動した apt ツールを使用して依存関係をインストールする場合、これは不便な場合があります。
TeamCity で Qodana を root ユーザーとして実行するには、Qodana ランナー構成のフィールドに -u root オプションを追加します。
Qodana CLI を root ユーザーとして実行するには、qodana scan コマンドに -u root オプションを追加します。
Git サブモジュール
SSH 経由でアクセスされる Git サブモジュールを使用するリポジトリを分析するには、Qodana Docker コンテナー内で Git 操作を認証する必要があります。この場合、以下のコードスニペットに示すように、SSH エージェントを設定し、サブモジュールへのアクセス権を持つ SSH キーをコンテナーに渡す必要があります。
このコマンドには以下のオプションが含まれています。
オプション | 説明 |
|---|---|
| SSH エージェントソケットをコンテナーにマウントします |
| SSH エージェントソケット環境変数を設定します |
| SSH 操作における厳密なホスト鍵チェックを無効にする |
| コミットハッシュについては、プルリクエストとマージリクエストを分析する章を参照してください。 |
このコマンドには以下のオプションが含まれています。
オプション | 説明 |
|---|---|
| SSH エージェントソケットをコンテナーにマウントします |
| SSH エージェントソケット環境変数を設定します |
| SSH 操作における厳密なホスト鍵チェックを無効にする |
| コミットハッシュについては、プルリクエストとマージリクエストを分析する章を参照してください。 |
ここで、args ブロックには以下のオプションが含まれています。
オプション | 説明 |
|---|---|
| SSH エージェントソケットをコンテナーにマウントします |
| SSH エージェントソケット環境変数を設定します |
| SSH 操作における厳密なホスト鍵チェックを無効にする |
ここで、args ブロックには以下のオプションが含まれています。
オプション | 説明 |
|---|---|
| SSH エージェントソケットをコンテナーにマウントします |
| SSH エージェントソケット環境変数を設定します |
| SSH 操作における厳密なホスト鍵チェックを無効にする |
Qodana CLI のキャッシュ
Qodana CLI(英語) はファイルを <userCacheDir> ディレクトリに保存します。これについては、このセクション全体で何度か説明します。オペレーティングシステムに応じた <userCacheDir> ディレクトリの場所のリストは次のとおりです。
オペレーティングシステム | パス |
|---|---|
macOS |
|
Linux |
|
Windows |
|
プロジェクトディレクトリで qodana init コマンドを実行すると、Qodana CLI により、インスペクション中に実行されるリンターを選択し、選択内容を qodana.yaml に保存できます。完了したら、コマンドでリンターを指定する必要はありません。これについては、このセクション全体で説明します。
qodana init コマンドの詳細な説明は、プロジェクトの構成セクションで参照できます。
関連ページ:
YAML ファイル
デフォルトでは、Qodana はプロジェクトのルートディレクトリに含まれるファイルから構成を読み取ります。オプションを使用してこのファイル名を上書きできます。カスタム構成ファイルセクションを参照してください。便宜上、このセクションではデフォルトの名を使用して参照します。で適用された構成は、デフォルトのインスペクションプロファイル設定と Qodana リンターのデフォルト構成を上書きします。これは HTML レポートセクションを使用して構成でき、すべての変更が自動的に適用されます。の JSON スキ...
Java、Kotlin、Groovy
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Java プロジェクトを分析するには、次のリンターを使用できます。リンター名 Docker イメージベースとなるもの IntelliJ IDEA Ultimate ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Java、Kotlin、Groovy、...
PHP
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。PHP プロジェクトを解析するには、以下の特徴を持つ Qodana for PHP リンターを使用できます。リンター名 Docker イメージベースとなるもの PhpStorm ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 PHP、JavaScr...
Python
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Python プロジェクトを分析するには、次のリンターを使用できます。リンター名 Docker イメージベースとなるもの PyCharm Professional ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Python、JavaScript、T...
JavaScript and TypeScript
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。JavaScript および TypeScript プロジェクトを解析するには、以下の特徴を持つ Qodana for JS リンターを使用できます。リンター名 Docker イメージベースとなるもの WebStorm ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメー...
Go
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。Golang プロジェクトを解析するには、以下の特徴を持つ Go 用 Qodana リンターを使用できます。リンター名 Docker イメージベースとなるもの GoLand ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Golang、JavaSc...