Qodana 2024.1 ヘルプ

シェルコマンド

このセクションでは、Qodana の Docker イメージQodana CLI(英語) ツールを構成する方法について説明します。どちらのツールもローカルCI/CD パイプラインで使用できます。いくつかのオプションは、Qodana CLI でのみ使用できます。

場合によっては、このセクションでも説明されている qodana.yaml ファイルを使用して構成できます。

Qodana のバージョン 2022.3 以降、Ultimate と Ultimate Plus リンターではプロジェクトトークンを参照するために QODANA_TOKEN 変数が必要です。Qodana のコミュニティリンターを実行する場合、Qodana クラウドで Qodana レポートを表示する場合にのみ QODANA_TOKEN を使用する必要があります。

Qodana CLI

Qodana CLI(英語) はファイルを <userCacheDir> ディレクトリに保存します。これについては、このセクション全体で何度か説明します。オペレーティングシステムに応じた <userCacheDir> ディレクトリの場所のリストは次のとおりです。

オペレーティングシステム

パス

macOS

~/Library/Caches/

Linux

~/.cache/

Windows

%LOCALAPPDATA%\

プロジェクトディレクトリで qodana init コマンドを実行すると、Qodana CLI により、インスペクション中に実行されるリンターを選択し、選択内容を qodana.yaml に保存できます。完了したら、コマンドでリンターを指定する必要はありません。これについては、このセクション全体で説明します。

qodana init コマンドの詳細な説明は、 プロジェクトの構成セクションで参照できます。

パス

次の表に、Docker イメージと Qodana CLI で使用できるパスを示します。

パス

説明

/data/project

プロジェクトのルートディレクトリ

/data/results

解析結果を保存するディレクトリ。Qodana を実行する前に空にする必要があります

/opt/idea

IDE 配布ディレクトリ

/root/.config/idea

IDE 構成ディレクトリ

/data/profile.xml

qodana.starter プロファイル構成を含むデフォルトのプロファイルファイル。このファイルは、プロファイルが CLI または qodana.yaml ファイルを通じて以前に設定されていない場合に使用されます。詳細はプロファイルを解決する順序を参照

/data/project/.idea/inspectionProfiles/

プロファイルファイルをバインドするディレクトリ

/data/cache/.m2

Maven プロジェクトの依存関係

/data/cache/gradle

Gradle プロジェクトの依存関係

/data/cache/nuget

NuGet プロジェクトの依存関係

/opt/idea/plugins

プラグインを含むディレクトリ

/data/coverage

コードカバレッジファイルをマッピングするためのディレクトリ

以下に、これらのパスを適用する方法の例をいくつか示します。

デフォルトのインスペクションプロファイルをオーバーライドする

デフォルトでは、Qodana は qodana.starter プロファイルを採用しますが、代わりに独自のプロファイルをバインドして使用することもできます。

docker run \ -v $(pwd):/data/project/ \ -v $(pwd)/<profile-file>:/data/profile.xml \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -v $(pwd)/<profile-file>:/data/profile.xml \ -e QODANA_TOKEN="<cloud-project-token>"

プロファイルの詳細については、このドキュメントのプロファイルを解決する順序およびプロファイルを設定するセクションを参照してください。

Gradle 設定を上書きする

JVM リンターの場合は、デフォルトの Gradle 設定をオーバーライドできます。

docker run \ -v $(pwd):/data/project/ \ -v $(pwd)/gradle.properties:/data/cache/gradle/gradle.properties \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -v $(pwd)/gradle.properties:/data/cache/gradle/gradle.properties \ -e QODANA_TOKEN="<cloud-project-token>"

プラグインを管理する

必要なプラグインを JetBrains マーケットプレイス(英語)から自動的にダウンロードし、CI/CD パイプラインで使用できます。例: このシェルスクリプトは Twig(英語) プラグインをダウンロードします。

IDE_CODE=PS PLUGIN_ID="com.jetbrains.twig" BUILD_ID="231.7515" curl -L -o "$PLUGIN_ID".zip "https://plugins.jetbrains.com/pluginManager?action=download&id=$PLUGIN_ID&build=$IDE_CODE-$BUILD_ID" && unzip "$PLUGIN_ID".zip

このスクリプトには、以下の表で説明するいくつかの変数が含まれています。

変数

説明

サンプル

IDE_CODE

プラグインをダウンロードする必要があるリンターの 2 文字のコード。使用可能な値は次のとおりです。

PS

PLUGIN_ID

JetBrains マーケットプレイス(英語)で利用可能なプラグインページのプラグイン識別子

Twig(英語) プラグインページの com.jetbrains.twig

BUILD_ID

Qodana ログで利用可能な Qodana のビルド ID

Starting up Qodana for PHP 2023.2 EAP (build QDPHP-231.7515)

プラグインディレクトリにマウントされたプラグインファイルを使用して Qodana を実行できます。

docker run \ -v $(pwd):/data/project/ \ -v <path-to-plugin>/<plugin-name>:/opt/idea/plugins/<plugin-name> \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -v <path-to-plugin>/<plugin-name>:/opt/idea/plugins/<plugin-name> \ -e QODANA_TOKEN="<cloud-project-token>"

Qodana ログの表示

ツールによっては、Qodana によって生成されたログファイルを表示できます。

$(pwd)/.qodana/results/ ディレクトリを Docker イメージの /data/results ディレクトリにマウントできます。

docker run \ -v $(pwd):/data/project/ \ -v $(pwd)/.qodana/results/:/data/results \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>

Qodana の実行が完了すると、$(pwd)/.qodana/results/ ディレクトリ内のログファイルを表示できます。

Qodana を実行した後、プロジェクトルートで qodana show -d コマンドを実行して、ログファイルが含まれるディレクトリを開きます。

オプション

Docker イメージは、いくつかの CLI オプションを使用して構成できます。これらすべてのオプションは 3 つのグループに分類できます。

オプション型

サンプル

オプション名とその引数の間に等号 (=) が必要です

--property=idea.log.config.file=info.xml

オプション名とその引数の間にスペース文字 ( ) が必要です

--baseline /path/to/sarif/file

引数は必要ありません

--show-report

これらすべてのオプションを呼び出すコマンドの例を次に示します。

docker run \ -p 8080:8080 \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --property=idea.log.config.file=info.xml \ --baseline <baseline-path> \ --show-report
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --property=idea.log.config.file=info.xml \ --baseline <baseline-path> \ --show-report

利用可能なオプションを確認するには、次のコマンドを使用できます。

docker run jetbrains/qodana-<linter> -h
qodana scan -h

ディレクトリ

これらのオプションを使用すると、Docker イメージパスセクションで説明されているパスをオーバーライドできます。

オプション

デフォルト設定

-i , --project-dir

インスペクションされたプロジェクトのルートディレクトリ。

外部ディレクトリに含まれるファイルとディレクトリは、Qodana の実行中は使用されません。

/data/project

-o , --results-dir

Qodana インスペクションの結果を保存するディレクトリ

/data/results

-r , --report-dir

生成された HTML レポートを保存するディレクトリ。レポートを開くには、 --save-report オプションを追加する必要があります。

/data/results/report

--cache-dir

キャッシュを保存するディレクトリ

/data/cache

-d , --source-directory

--project-dir 内のディレクトリ。不足している場合はプロジェクト全体がインスペクションされます

.gitbuild.gradle などの外部ディレクトリに含まれるファイルとディレクトリは、コードのインスペクション中に Qodana によって使用されます。

なし

レポートディレクトリを上書きする

この Docker コマンドは、--report-dir オプションを使用してデフォルトのレポートディレクトリをオーバーライドし、 --save-report オプションを使用して生成されたレポートをローカルファイルシステムに保存します。

docker run \ -v $(pwd):/data/project/ \ -v <html-report-directory>:/data/results/newreportdir/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --report-dir /data/results/newreportdir/ \ --save-report

生成されたレポートは、このコマンドの -v <html-report-directory>:/data/results/newreportdir/ 行に従ってローカルファイルシステムに保存されます。

キャッシュの依存関係

実行間でキャッシュを保持することで、Qodana のパフォーマンスを向上させることができます。例: Maven、Gradle、npm、Yarn、NuGet などのパッケージおよび依存関係管理ツールは、ダウンロードされた依存関係のローカルキャッシュを保持します。

デフォルトでは、Qodana はコンテナー内の /data/cache ディレクトリにキャッシュを保存します。 --cache-dir オプションを使用して、この場所をオーバーライドできます。このデータはリポジトリごとであるため、branch-a からビルドチェック branch-b にキャッシュを渡すことができます。この場合、新しい依存関係が追加された場合のみダウンロードされます。

このコマンドは、ローカルディレクトリを Docker イメージの /data/cache ディレクトリにマップし、キャッシュをローカルファイルシステムに保存します。

docker run \ -v $(pwd):/data/project/ \ -v <local-cache-directory>:/data/cache/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>

--cache-dir オプションを使用すると、キャッシュディレクトリをオーバーライドできます。

docker run \ -v $(pwd):/data/project/ \ -v <local-cache-directory>:/data/newcachedir/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --cache-dir /data/newcachedir
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --cache-dir /opt/newcachedir

GitHub ワークフローでは、依存関係のキャッシュ(英語)を使用できます。GitLab CI/CD には、プロジェクトディレクトリ内にのみ(英語)保存できるキャッシュ(英語)もあります。この場合、 qodana.yaml を介してインスペクションからキャッシュディレクトリを除外できます。

プロファイル

デフォルトでは、Qodana は qodana.starter プロファイルを使用してコードをインスペクションします。

Qodana プロファイルは、 qodana.yaml ファイル内で構成するか、この表の CLI オプションを使用して構成およびオーバーライドできます。

オプション

説明

デフォルト設定

--disable-sanity

qodana.sanity プロファイルによって構成されたインスペクションの実行をスキップします

有効

-n , --profile-name

事前定義された Qodana プロファイルのリストから取得されたプロファイル名、または XML 形式のプロファイルファイルに <option name="myName" value="%profileName%"/> として保存されているカスタムプロファイル名。

qodana.yaml ファイルを使用してこのオプションを構成することもできます

qodana.starter

-p , --profile-path

プロファイルファイルへの絶対パス

qodana.yaml ファイルを使用してこのオプションを構成することもできます

なし

--run-promo

qodana.starter プロファイルの一部としてプロモーションインスペクションを実行する

Qodana が qodana.starter プロファイル用に構成されており、--run-promo true オプションが呼び出された場合にのみ有効になります。

プロファイル名

--profile-name オプションを使用すると、デフォルトのプロファイルまたはカスタムプロファイルのプロファイル名を使用して Qodana を実行できます。

このコマンドを使用すると、デフォルトのプロファイルをオーバーライドし、 qodana.recommended プロファイルを使用して Qodana を実行できます。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --profile-name qodana.recommended
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --profile-name qodana.recommended

カスタムプロファイルで Qodana を実行するには、実際のプロファイル名を使用します。

このコマンドを使用すると、カスタムプロファイルをバインドできます。

docker run \ -v $(pwd):/data/project/ \ -v <path-to-profile-file>/<file-name>:/data/project/.idea/inspectionProfiles/<file-name> \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --profile-name <profile-name-from-file>
qodana scan \ -v <path-to-profile-file>/<file-name>:/data/project/.idea/inspectionProfiles/<file-name> \ -e QODANA_TOKEN="<cloud-project-token>" \ --profile-name <profile-name-from-file>

プロファイルパス

--profile-path オプションを使用すると、プロファイルを含むファイルへのパスをオーバーライドできます。

このコマンドを使用すると、ファイルをプロファイルディレクトリにバインドでき、--profile-path オプションは、どのプロファイルファイルを読み取るかを Qodana に指示します。

docker run \ -v $(pwd):/data/project/ \ -v <path-to-profile-file>/<file-name>:/data/project/myprofiles/<file-name> \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --profile-path /data/project/myprofiles/<file-name>
qodana scan \ -v <path-to-profile-file>/<file-name>:/data/project/myprofiles/<file-name> \ -e QODANA_TOKEN="<cloud-project-token>" \ --profile-path /data/project/myprofiles/<file-name>

カスタム構成ファイル

プロジェクトには、YAML 形式のファイルに含まれる複数の Qodana 構成を含めることができます。これは、モノレポプロジェクトを分析したり、単一の CI ジョブを実行したりする場合に役立ちます。

--config オプションと、プロジェクトルートからの相対的なファイルへのパスを使用できます。

docker run \    -v $(pwd):/data/project \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-<linter> \    --config relative/path/to/config.yaml
qodana scan \    -e QODANA_TOKEN="<cloud-project-token>" \    --config relative/path/to/config.yaml

ベースライン

ベースライン実行モードでは、新しい Qodana 実行がそれぞれ初期実行と比較されます。これは、古い問題を修正する可能性がなく、新しい問題の発生を防ぎたい場合に役立ちます。

ベースライン機能を使用するには、まず Qodana を実行し、レポート UI でベースラインと見なされる問題を選択します。最後に、ベースライン問題を含む SARIF 形式のファイルを保存します。

これはベースライン関連のオプションのリストです。

オプション

説明

-b , --baseline

Qodana をベースラインモードで実行します。ベースライン状態の計算で使用される既存の SARIF レポートへのパスを指定します

--baseline-include-absent

現在の実行には存在しないベースライン実行の結果を出力レポートに含めます

これは、すべてのベースラインオプションを呼び出すコマンドです。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --baseline <path-to-the-SARIF-file> \ --baseline-include-absent
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --baseline <path-to-the-SARIF-file> \ --baseline-include-absent

ここで、<path-to-the-SARIF-file> はプロジェクトルートを基準とした qodana.sarif.json ファイルへのパスであり、以前の Qodana 実行から取得されます。--baseline-include-absent が呼び出されると、インスペクションの結果には、存在しない問題、またはベースライン実行でのみ検出され、現在の実行では検出されなかった問題が含まれます。

この実行に基づいて、SARIF 出力レポートにはベースライン状態に関する問題ごとの情報が含まれます。

コードカバレッジ

コードカバレッジファイルを含むディレクトリを Qodana リンターイメージの /data/coverage ディレクトリにマッピングすることで、コードカバレッジを実行できます。

docker run \ -v /my/dir/with/coverage:/data/coverage \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -v /my/dir/with/coverage:/data/coverage \ -e QODANA_TOKEN="<cloud-project-token>"

レポート

この表には、レポートに関連するオプションが含まれています。

オプション

説明

-s , --save-report

HTML 形式のレポートを生成して保存する

-w , --show-report

HTML 形式のレポートを提供します。デフォルトでは、ポート 8080 が使用されます

レポートを保存する

Docker コマンドの --save-report オプションを使用すると、生成された HTML レポートをローカルファイルシステムに保存できます。

docker run \ -v $(pwd):/data/project/ \ -v <directory-to-save-report-to>:/data/results/report \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --save-report

レポートを表示する

このコマンドはホストマシンのポート 4040 で Web サーバーを実行するため、レポートは http://localhost:4040 で利用できるようになります。

docker run \ -p 4040:8080 \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --show-report
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --port 4040 \ --show-report

あるいは、プロジェクトルートで qodana show コマンドを実行できます。

Web サーバーを停止するには、Docker コンソールで Ctrl-C を押します。

クオリティゲート

Qodana を使用すると、しきい値として機能する品質ゲートまたは問題の数を構成できます。しきい値を超えると、インスペクションの実行は終了します。

オプション

説明

--fail-threshold

品質ゲートとして機能する問題の数を設定します

以下は、問題の数が 10 を超えた場合にビルドを失敗するように Qodana に指示するコマンドです。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --fail-threshold 10
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --fail-threshold 10

ベースラインモードを有効にして Qodana を実行すると、しきい値は新しい問題と存在しない問題の合計として計算されます。変更されていない結果は無視されます。

クイックフィックス

クイックフィックス戦略をコードベースに適用するには、--fixes-strategy オプションを呼び出します。

docker run \ -v <source-directory>/:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --fixes-strategy <cleanup/apply>
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ <--apply-fixes/--cleanup>

Properties

--property= オプションを使用すると、さまざまな Qodana パラメーターをオーバーライドできます。

オプション

説明

--property=

次の表記を使用して JVM プロパティを設定します。

--property=property.name=value1,...,valueN

このオプションは、複数の JVM プロパティを設定するために複数回繰り返すことができます。

INFO メッセージを STDOUT に記録する

STDOUT のデフォルトのログレベルは WARN です。idea.log.config.file プロパティを使用してオーバーライドできます。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --property=idea.log.config.file=info.xml
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --property=idea.log.config.file=info.xml

ユーザー統計を無効にする

使用状況統計のレポートを無効にするには、--property オプションの idea.headless.enable.statistics 値を調整します。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --property=idea.headless.enable.statistics=false
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --property=idea.headless.enable.statistics=false

プラグインの構成

idea.required.plugins.id および idea.suppressed.plugins.id プロパティを使用すると、特定の実行に必要なプラグインと、抑制されるプラグインのリストを指定できます。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --property=idea.required.plugins.id=JavaScript,org.intellij.grails \ --property=idea.suppressed.plugins.id=com.intellij.spring.security
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --property=idea.required.plugins.id=JavaScript,org.intellij.grails \ --property=idea.suppressed.plugins.id=com.intellij.spring.security

変化の分析

オプション

説明

--diff-start および --diff-end

変更セット(マージやプルリクエストなど)に対して増分分析を実行する

作業を終えて変更を分析したい場合は、--diff-start オプションを使用して、比較のベースとなるコミットのハッシュを指定できます。

docker run \    -v $(pwd):/data/project/ \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-<linter> \    --diff-start=<GIT_START_HASH>
qodana scan \    -e QODANA_TOKEN="<cloud-project-token>" \    --diff-start=<GIT_START_HASH>

2 つのコミット間の変更セットを分析するには、--diff-start--diff-end の両方のオプションを使用します。

docker run \    -v $(pwd):/data/project/ \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-<linter> \    --diff-start=<GIT_START_HASH> \    --diff-end=<GIT_END_HASH>
qodana scan \    -e QODANA_TOKEN="<cloud-project-token>" \    --diff-start=<GIT_START_HASH> \    --diff-end=<GIT_END_HASH>

シナリオの実行

オプション

説明

デフォルト設定

--script

デフォルトの実行シナリオをオーバーライドする

default

default 実行シナリオの適用は、次のコマンドを実行することと同じです。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --script default
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --script default

PHP バージョンの移行シナリオを実行するには、次のコマンドを実行します。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --script php-migration:<old-php-version>−to−<upgraded-php-version>
qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --script php-migration:<old-php-version>−to−<upgraded-php-version>

レポートを Qodana クラウドに転送する

レポートを Qodana クラウドに転送するには、フォワードレポートセクションに従って、Docker 環境のリストを設定できます。

ヒープサイズを変更する

デフォルトでは、ヒープサイズはホスト RAM の 80% に設定されています。この設定は、_JAVA_OPTIONS 変数を使用して構成できます。

docker run \ -v $(pwd):/data/project/ \ -e _JAVA_OPTIONS=-Xmx6g \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -e _JAVA_OPTIONS=-Xmx6g \ -e QODANA_TOKEN="<cloud-project-token>"

ヒープの構成の詳細については、Oracle ドキュメントのヒープチューニングパラメーター(英語)を参照してください。

idea.properties ファイルをオーバーライドする

idea.properties は、IDE ファイルのデフォルトの場所を構成します。

IDEA_PROPERTIES 変数を使用して idea.properties ファイルをオーバーライドできます。

docker run \ -v $(pwd):/data/project/ \ -e IDEA_PROPERTIES=/data/project/idea.properties \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>
qodana scan \ -e IDEA_PROPERTIES=/data/project/idea.properties \ -e QODANA_TOKEN="<cloud-project-token>"

root ユーザーと非 root ユーザーを構成する

デフォルトでは、Docker コンテナーは root ユーザーで実行されるため、Qodana はプロジェクト情報を読み取り、インスペクション結果を書き込むことができます。実行後、results/ ディレクトリ内のすべてのファイルは root ユーザーによって所有されます。

これを解決するには、コンテナーを通常のユーザーとして実行します。

docker run \ -u $(id -u):$(id -g) \ -v $(pwd):/data/project/ \ -v <results-directory>:/data/results/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>

この場合、ホスト上の results/ ディレクトリはすでに作成されており、ユーザーが所有している必要があります。それ以外の場合、Docker はそれを root ユーザーとして作成し、Qodana はそれに書き込むことができなくなります。

TeamCity および Qodana CLI(英語) は、現在の非 root ユーザーを使用して Qodana を実行します。 bootstrap セクションで起動した apt ツールを使用して依存関係をインストールする場合、これは不便な場合があります。

TeamCity で root ユーザーとして Qodana を実行するには、Qodana ランナー構成の追加の Docker 引数フィールドに -u root オプションを追加します。

Qodana CLI を root ユーザーとして実行するには、qodana scan コマンドに -u root オプションを追加します。

qodana scan -u root

Qodana CLI でのみ使用可能なオプション

プロジェクト構成

qodana init <options> コマンドでは次のオプションを使用できます。

オプション

説明

-f , --force

強制初期化 (既存の有効な qodana.yaml ファイルを上書きします)

-h , --help

qodana init コマンドのヘルプ

-i , --project-dir <string>

設定するプロジェクトのルートディレクトリ (デフォルトは . です)

スキャンプロジェクト

qodana scan <options> コマンドでは次のオプションを使用できます。

オプション

説明

-l , --linter <string>

使用するリンター(イメージ)を選択します。使用可能なイメージは次のとおりです: jetbrains/qodana-jvm-communityjetbrains/qodana-jvmjetbrains/qodana-jvm-androidjetbrains/qodana-phpjetbrains/qodana-pythonjetbrains/qodana-python-communityjetbrains/qodana-jsjetbrains/qodana-gojetbrains/qodana-dotnet ですが、Qodana を含む任意の Docker イメージを使用できます。

--ide <string>

コンテナーなしで Qodana を実行するために使用します。インストールされている IDE またはダウンロードされた IDE へのパス: 直接 URL または製品コードを指定します。オプション --linter とは互換性がありません。利用可能なコードは QDJVMCQDJVMQDPHPQDPYQDPYCQDJSQDGOQDNET で、EAP バージョンを取得するには -EAP 部分を追加します。

-i , --project-dir <string>

インスペクション対象プロジェクトのルートディレクトリ (デフォルトの .)

-o , --results-dir <string>

Qodana インスペクションの結果を保存するディレクトリを上書きします (デフォルトの <userCacheDir>/JetBrains/Qodana/<linter>/results)

--cache-dir <string>

キャッシュディレクトリを上書きする (デフォルトの <userCacheDir>/JetBrains/Qodana/<リンター>/cache)

--report-dir <string>

Qodana HTML レポートを保存するディレクトリを上書きします (デフォルトの <userCacheDir>/JetBrains/<linter>/results/report)

--print-problems

見つかったすべての問題を、Qodana によって CLI 出力に出力します。

--clear-cache

分析を実行する前にローカル Qodana キャッシュをクリアします

-w , --show-report

特定のポートで HTML レポートを提供する

--port int

レポートを提供するポート (デフォルト 8080)

--yaml-name <string>

使用する qodana.yaml 名をオーバーライドします: qodana.yaml または qodana.yml

-a , --analysis-id <string>

Qodana クラウドで使用される一意のレポート識別子 (GUID) (デフォルト "<生成された value>")

-b , --baseline <string>

ベースライン状態の計算で使用される既存の SARIF レポートへのパスを指定します

--baseline-include-absent

現在の実行には存在しないベースライン実行の結果を出力レポートに含めます

--full-history --commit

完全なコミット履歴を調べて、各コミットに対して分析を実行します。--commit と組み合わせると、指定されたコミットから分析が開始されます。長い時間がかかる可能性があります。

--fail-threshold <string>

品質ゲートとして機能する問題の数を設定します。この数値に達すると、インスペクションの実行はゼロ以外の終了コードで終了します。

--disable-sanity

健全性プロファイルによって構成されたインスペクションの実行をスキップします

-d , --source-directory <string>

project-dir ディレクトリ内のディレクトリをインスペクションする必要があります。指定しない場合、プロジェクト全体がインスペクションされます

-n , --profile-name <string>

プロジェクトで定義されたプロファイル名

-p , --profile-path <string>

プロファイルファイルへのパス

--run-promo <string>

true に設定すると、プロモーションプロファイルで構成されたインスペクションをアプリケーションで実行できます。それ以外の場合は false に設定します (デフォルト: true は、Qodana がデフォルトのプロファイルで実行された場合のみ)

--script <string>

実行シナリオをオーバーライドする (デフォルトの default)

--stub-profile <string>

フォールバックプロファイルファイルへの絶対パス。このオプションは、使用可能なオプションを使用してプロファイルが指定されなかった場合に適用されます。

--apply-fixes

クリーンアップを含む、利用可能なすべてのクイックフィックスを適用します。

--cleanup

プロジェクトのクリーンアップを実行する

--property <stringArray>

--property property.name=value1,value2,...,valueN 表記を使用して、Qodana の実行中に使用される JVM プロパティを設定します。

-s , --save-report

HTML レポートを生成する (デフォルトの真)

-e , --env <stringArray>

Qodana コンテナーに追加の環境変数を定義します (フラグは複数回使用できます)。CLI は完全なホスト環境変数を読み取らず、セキュリティ上の理由から Qodana コンテナーに渡しません。

-v , --volume <stringArray>

Qodana コンテナーの追加ボリュームを定義する (フラグは複数回使用できます)

-u , --user <string>

Qodana コンテナーを実行するユーザー。ユーザー ID – $UID またはユーザー ID とグループ ID $(id -u):$(id -g) を指定してください。ルートユーザーとして実行するには root を使用します (デフォルト: 現在のユーザー)

--skip-pull

最新の Qodana コンテナーのプルをスキップする

--code-climate

GitLab CI/CD でサポートされているコード品質(英語)レポートを生成します。

--bitbucket-insights

Bitbucket クラウドでサポートされているコードインサイト(英語)レポートを生成し、Bitbucket Code Insights API を使用して転送します。

-h , --help

qodana scan コマンドのヘルプ

レポートを表示する

qodana show <options> コマンドでは次のオプションを使用できます。

オプション

説明

-d , --dir-only

レポートディレクトリのみを開く

-h , --help

qodana show コマンドのヘルプ

-l , --linter <string>

使用するリンターをオーバーライドする

-p , --port <int>

レポートを提供するポートを指定します (デフォルト 8080)

-i , --project-dir <string>

インスペクション対象プロジェクトのルートディレクトリ (デフォルト "。")

-r , --report-dir <string>

HTML レポートのパスを指定します (index.html が入っているもの) (デフォルトの <userCacheDir>/JetBrains/<linter>/results/report)

SARIF 形式のファイルを表示する

次のオプションを使用して qodana view <options> コマンドを実行できます。

オプション

説明

デフォルト設定

-f , --sarif-file <string>

SARIF 形式のファイルへのパス

./qodana.sarif.json

-h , --help

qodana view コマンドのヘルプ

なし

コントリビューターの数を数える

コントリビューターカウントのメカニズムについては、コントリビューターのカウントセクションで説明されています。

Qodana CLI を使用してコントリビューターをカウントするには、次のオプションを指定して qodana contributors <options> コマンドを実行します。

オプション

説明

デフォルト設定

-d , --days <int>

アクティブな投稿者の数を計算する日数

30

-h , --help

qodana contributors コマンドのヘルプ

なし

-i , --project-dir <string>

設定するプロジェクトのルートディレクトリ

.

プロジェクト情報

qodana cloc <options> コマンドを使用すると、言語やコード行などのプロジェクトに関する情報を表示できます。このコマンドで使用可能なオプションのリストは次のとおりです。

オプション

説明

-o , --output <string>

tabularwidejsoncsvcsv-streamcloc-yamlhtmlhtml-tablesqlsql-insertopenmetrics 値を受け入れる出力形式。デフォルト設定は tabular です

-h , --help

qodana cloc コマンドのヘルプ

-i , --project-dir <stringArray>

プロジェクトディレクトリ。このオプションを複数回指定して、複数のプロジェクトをチェックすることができます。指定しない場合は、現在のディレクトリが使用されます。

プロファイルを解決する順序

Qodana は、インスペクションプロファイルを解決するための構成パラメーターを次の順序でチェックします。

  1. コマンドラインオプション --profile-name %\name% からの %\name% という名前のプロファイル

  2. コマンドラインオプション --profile-path %\path% からのパス %\path% によるプロファイル

  3. qodana.yaml から %\name% という名前のプロファイル

  4. qodana.yaml から %\path% のパスによるプロファイル

  5. /data/profile.xml に取り付けられたプロファイル

  6. デフォルトの qodana.recommended プロファイルの使用にフォールバックします

関連ページ:

Qodana Docker イメージ

基本的に、Docker イメージの名前はリンターの名前と似ています。Qodana リンターには次の Docker イメージが提供されています。JVM 用 Qodana、JVM の Qodana コミュニティ、Android のための Qodana コミュニティ、PHP 用の Qodana、Python 用 Qodana、Python のための Qodana コミュニティ、JS 用 Qodana、Go 用 Qodana、.NET 用 Qodana、.NET の Qodana コミュニティ、...

クイックスタート

Qodana (2024.1) の現在のバージョンは、Java、Kotlin、Groovy、PHP、JavaScript、TypeScript、C#、Visual Basic、C、C++、Python、Golang プロジェクトを分析できるリンターを提供します。さまざまな機能を使用して、デフォルトのリンター構成を拡張することもできます。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェ...

コードカバレッジ

コードカバレッジは、生成されたレポートを使用して、メソッド、クラス、ファイル内の全体的なコードカバレッジを計算します。また、これらのエンティティにおけるカバレッジの不足に関連する問題についても報告します。この機能は、次のリンターの Ultimate および Ultimate Plus ライセンスで利用できます。JVM 用 QodanaIntelliJ IDEA コードカバレッジエージェントが推奨ツールですが推奨される形式です。もサポートされています。JaCoCoJS 用 QodanaJestPHP...

インスペクションプロファイル

インスペクションプロファイルは、インスペクション、これらのインスペクションが分析するファイルスコープ、およびインスペクションの重大度を定義します。このセクションでは、既存の Qodana プロファイルを使用する方法、独自のプロファイルを作成する方法、Qodana を使用してプロジェクトを分析するためのプロファイルを設定する方法について説明します。既存の Qodana プロファイル:すぐに使用できる Qodana プロファイルは次のとおりです。プロファイルのサブセット。Qodana ではデフォル...

ベースライン

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

PHP バージョンの移行

ある PHP バージョンから別のバージョンへの移行がコードの品質にどのような影響を与えるかを確認するには、Qodana シナリオを使用します。このシナリオを実行すると、新しい PHP バージョンにアップグレードした後に発生するコードベースの問題を確認できます。この機能は PHP 用の Qodana リンターによってサポートされており、Ultimate および Ultimate Plus ライセンスとその試用版で利用できます。このシナリオは、ファイルで構成することも、CLI を使用して呼び出すこともでき...