デプロイ
このセクションでは、Qodana で使用できるすべてのデプロイオプションについて説明します。
システム要件
要件 | 最小 | 推奨 |
|---|---|---|
RAM | 2 GB の空き RAM | 8 GB の総システム RAM |
CPU | 最新の CPU | マルチコア CPU。Qodana は、さまざまな操作やプロセスに対してマルチスレッドをサポートしており、使用できる CPU コアの数が増えるほど高速化します。 |
ディスク容量 | 2.5 すべての依存関係とキャッシュ用の GB + スペース | 少なくとも 5 GB の空き容量 + すべての依存関係とキャッシュ用のスペース |
オペレーティングシステム | 以下の公式リリースバージョン:
| 以下の最新バージョン:
|
ネイティブモード
デフォルトでは、Qodana は Linux イメージに基づいて Docker を使用してリンターを実行します。特定のケースでは、プライベートパッケージを処理するか、Docker のサポートが不完全なオペレーティングシステムで Qodana を実行する必要があります。
これを克服するために、Qodana は次のリンターに対してネイティブモードをサポートしています。
リンター | リンター名 |
|---|---|
| |
| |
| |
| |
| |
| |
| |
|
Linux、macOS、Microsoft Windows でネイティブモードを実行できます。
この場合、Qodana は実行環境を再利用します。これにより、プロジェクトのビルドに使用するのとまったく同じ環境で Qodana を実行し、適切なオペレーティングシステムを使用し、すべてのリポジトリ資格情報にアクセスし、依存関係を解決することができます。
始める前に
サポートされているすべてのリンターの一般的な手順
オペレーティングシステムで、Qodana Cloud プロジェクトトークンを含む QODANA_TOKEN 環境変数を保存します。
コマンドラインを使用して Qodana を実行する場合は、実行するマシンに Qodana CLI をインストールします。
Qodana のバージョン 2023.3 以降では、プロジェクトディレクトリに bootstrap キーを含む qodana.yaml ファイルが見つからない場合、健全性インスペクションがレポートします。--disable-sanity オプションを使用してこのインスペクションを無効にするか、このインスペクションをベースラインに追加することができます。
.NET 用 Qodana
一般的な手順に加えて、適切なバージョンの .NET SDK と必要なすべての依存関係がマシンにインストールされていることを確認してください。
Qodana を使用してインスペクションする前にプロジェクトをビルドします。これは、 qodana.yaml ファイルの bootstrap キーを使用して実行できます。プロジェクトのビルドとアーティファクトのパッケージ化の段階は、Qodana の前、または同時に実行する必要があります。Qodana を実行するとプロジェクトの状態とそのファイルに影響する可能性があるため、ビルドパイプラインで同じディレクトリを再利用することは避けることをお勧めします。
また、Qodana にビルド済みのプロジェクトを提供したり、CI/CD パイプラインでビルド手順を指定したりすることもできます。プロジェクトのビルドに関連する警告を削除するには、リポジトリに空の qodana.yaml ファイルを作成します。
ネイティブモードの仕組み
--within-docker false オプションと --linter <linter-name> オプションを組み合わせて使用することで、ネイティブモードを有効にすることができます。これらのオプションは、Qodana リンターの実行中に必要な JetBrains IDE バイナリファイルをダウンロードして使用するよう Qodana に指示します。
以下は、Qodana をネイティブモードで実行する方法を示した例です。
QODANA_TOKEN変数が環境で定義され、適切なプロジェクトトークンを参照していることを確認します。必要に応じて、次のように定義できます。QODANA_TOKEN=<cloud-project-token>qodana scanコマンドを実行します。qodana scan \ --linter <linter-name> \ --within-docker false
IDE の統合
Qodana は、JetBrains、Visual Studio Code、Visual Studio などの複数の IDE で実行できます。詳細は IDE 統合の概要のセクションを参照してください。
Qodana CLI
Qodana CLI は、最小限の労力で Qodana リンターを実行できるシンプルなクロスプラットフォームのコマンドラインツールです。
Qodana CLI をデフォルトモードで実行するには、Docker または Podman がインストールされ、ローカルで実行されている必要があります。Linux を使用している場合は、現在の非 root ユーザー(英語)で Docker を実行できるはずです。
利用可能なオプションを使用して、Qodana CLI をマシンにインストールします。
Homebrew(英語) を使用してインストールします (推奨):
brew install jetbrains/utils/qodanaあるいは、インストーラーを使用して Qodana CLI をインストールすることもできます。
curl -fsSL https://jb.gg/qodana-cli/install | bashnightlyまたはその他のバージョンは、次の方法でインストールできます。curl -fsSL https://jb.gg/qodana-cli/install | bash -s -- nightlyLinux では、Go(英語) を使用して Qodana をインストールすることもできます。
go install github.com/JetBrains/qodana-cli@latestWindows パッケージマネージャーを使用してインストールします (推奨):
winget install -e --id JetBrains.QodanaCLIChocolatey(英語) を使用してインストールします。
choco install qodanaScoop(英語) を使用してインストールします。
scoop bucket add jetbrains https://github.com/JetBrains/scoop-utils scoop install qodanaプロジェクトのルートディレクトリで、プロジェクトトークンを含む
QODANA_TOKEN変数を宣言します。QODANA_TOKEN=<cloud-project-token>set QODANA_TOKEN=<cloud-project-token>Qodana の実行:
qodana scanqodana scan
Docker イメージ
Qodana は、以下の表にリストされている複数の Docker イメージにも分散されています。
リンター | Docker イメージ |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
* オプションのタグを使用すると、事前設定された Qodana イメージをプルできます。
C/C++ 用の Qodana および C/C++ 用の Qodana コミュニティリンターの場合、
-clangXXタグを使用して Clang-Tidy(英語) バージョン 15 から 18 を指定します。Qodana for Ruby リンターでは、
-ruby3.Xタグを使用して Ruby バージョン 3.1 から 3.4 を指定します。指定がない場合は、バージョン 3.4 が使用されます。-privilegedタグを使用すると、Qodana を特権モードで実行し、ルートアクセスを必要とするコマンドを実行できます。この場合、Qodana には、ルート権限を持ちパスワードを必要としないデフォルトのqodanaユーザーが付属しています。このモードを C/C++ 用の Qodana、C/C++ 用の Qodana Community、Ruby リンター用の Qodana で使用するには、それぞれ-clangXXタグと-ruby3.Xタグを指定する必要があります。
テーブルから Docker イメージを指定するには、--image オプションを使用します。
異なる Docker コンテキストまたは Podman
Qodana は、コンテナーエンジンとの通信に Docker CLI を使用し、実行時に有効になっている Docker コンテキストを採用します。例: コンテナーエンジンとして Podman を使用するには、次のいずれかを行う必要があります。
Podman デスクトップで、Docker 互換モードを有効にし、Docker を無効にして、Podman が
/var/run/docker.sockをリッスンするようにします。Podman ソケットを使用して Docker コンテキストを作成します。Podman デスクトップを使用している場合は、設定> リソースにソケットパスがあります。
docker version コマンドを実行すると、どのエンジンがアクティブになっているかを確認できます。
CI 統合
CI 統合の概要セクションに従って、さまざまな CI/CD パイプラインを使用して Qodana を実行できます。
Azure Pipelines、CircleCI、GitHub Actions、GitLab CI/CD、TeamCity については、Qodana がネイティブソリューションを提供します。Bitbucket Cloud、Jenkins を使用して Qodana を実行するには、Docker イメージを使用できます。
Gradle プラグイン
Gradle Qodana プラグイン(英語)は、Qodana によって提供されるコードインスペクションを実行するための Gradle インターフェースを提供します。まず、Gradle 構成ファイル内の Gradle プラグイン org.jetbrains.qodana を適用します。
build.gradle 構成ファイルに以下を追加します。
build.gradle.kts 構成ファイルに以下を追加します。
qodana { } 拡張構成
qodana { } トップレベル構成クロージャでの構成に使用できるプロパティ:
名前 | 説明 | タイプ | デフォルト値 |
|---|---|---|---|
| 分析するプロジェクトフォルダーへのパス。 |
|
|
| タスクの結果を保存するディレクトリへのパス。 |
|
|
| 生成されたレポートを保存するディレクトリへのパス。 |
|
|
Gradle Qodana タスク
qodanaScan
プロジェクトディレクトリで Qodana を起動します。
このタスクは、qodana { } 拡張構成に依存します。ただし、提供されている arguments によっても制御されます。
サンプル
これを Gradle 構成ファイルに追加します。
Groovy –
build.gradleplugins { // applies Gradle Qodana plugin to use it in project id "org.jetbrains.qodana" version "..." } qodana { // by default result path is $projectPath/build/results resultsPath = "some/output/path" } qodanaScan { arguments = ["--fail-threshold", "0"] }Kotlin –
build.gradle.ktsplugins { // applies Gradle Qodana plugin to use it in a project id("org.jetbrains.qodana") version "..." } qodana { // by default, the result path is $projectPath/build/results resultsPath.set("some/output/path") } qodanaScan { resultsPath.set("some/output/path") arguments.set(listOf("--fail-threshold", "0")) }
これで、qodanaScan Gradle タスクを使用して分析を実行できます。
arguments パラメーターのオプションと構成に関する完全なガイドは、Qodana CLI ドキュメントページ(英語)にあります。
関連ページ:
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...
JavaScript and TypeScript
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。JavaScript および TypeScript プロジェクトを解析するには、以下の特徴を持つ Qodana for JS リンターを使用できます。リンター名 Docker イメージベースとなるもの WebStorm ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメー...
.NET
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。.NET プロジェクトを分析するには、次の Qodana リンターを使用できます。リンター名 Docker イメージ * ベースとなるもの JetBrains Rider ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 C#、C/C++、VB.NET、J...
Python
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Python プロジェクトを分析するには、次のリンターを使用できます。リンター名 Docker イメージベースとなるもの PyCharm Professional ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Python、JavaScript、T...
Golang
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。Golang プロジェクトを解析するには、以下の特徴を持つ Go 用 Qodana リンターを使用できます。リンター名 Docker イメージベースとなるもの GoLand ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Golang、JavaSc...