プラグイン
JetBrains マーケットプレイス(英語)などのリポジトリの既存のプラグインを使用するか、カスタムプラグインを使用して Qodana を拡張できます。
JetBrains マーケットプレイスのプラグイン
JetBrains マーケットプレイス(英語)からプラグインをインストールして実行するには、qodana.yaml ファイルで plugin オプションを指定します。
ここで、<plugin-id> は JetBrains マーケットプレイス(英語)のプラグイン ID を表します。特定のプラグインの ID を確認するには、JetBrains マーケットプレイス(英語)のプラグインページで「」タブをクリックし、「」セクションに移動します。
この表には、いくつかのプラグインの例とそれぞれの ID が示されています。
プラグイン名 | プラグイン ID |
|---|---|
| |
| |
|
プラグインの設定と実行
カスタム設定を使用してプラグインを実行するには、プラグイン設定ファイルを更新します。例: CheckStyle-IDEA(英語) プラグインの場合は、.idea/checkstyle-idea.xml ファイルを変更する必要があります。他のプラグインの場合、設定ファイルは /root/.config/idea/options のように IDE の構成ディレクトリに配置できます。
変更した設定を保存したら、更新された設定ファイルを使用して Qodana を実行します。CheckStyle-IDEA プラグインの場合は、Qodana 解析の前に設定ファイルを .idea ディレクトリに保存する必要があります。それ以外の場合は、設定ファイルを /root/.config/idea/options ディレクトリにマウントする必要があります。
ここで、<linter> はリンター名を表し、QODANA_TOKEN はプロジェクトトークンを表します。
カスタムプラグイン
Qodana を使用してカスタムプラグインを実行する前に、次のコンポーネントを準備します。
プラグインコードを含むファイル(例:
.jarファイル)ファイルに含まれるプラグイン設定
プラグインを有効にするインスペクション名
プラグインを設定するには、次の手順に従ってください。
プロジェクトのルートディレクトリに、
.qodanaディレクトリを作成します。.qodanaディレクトリに、プラグインに関連するすべてのファイルを保存します。プラグインが複数の.jarファイルで構成されている場合は、.qodana内にディレクトリを作成し、そこに保存できます。JetBrains マーケットプレイス(英語)からプラグインをダウンロードして実行することもできます。qodana.yamlファイルで、YAML ファイルセクションの説明に従ってインスペクションを有効にします。以下の例を使用して Qodana を実行します。
qodana scan \ -l <linter> -e QODANA_TOKEN="<cloud-project-token>" \ -v <plugin-directory>/<plugin-name>.jar:/opt/idea/plugins/<plugin-name>.jar \ -v <path-to-plugin-config>/<config-file>:/root/.config/idea/options/<config-file>docker run \ -v <project-directory>:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ -v <plugin-directory>/<plugin-name>.jar:/opt/idea/plugins/<plugin-name>.jar \ -v <path-to-plugin-config>/<config-file>:/root/.config/idea/options/<config-file> <image>name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' branch - 'releases/*' # The release branches jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 with: args: > --linter <linter-name> -v <plugin-directory>/<plugin-name>.jar:/opt/idea/plugins/<plugin-name>.jar -v <path-to-plugin-config>/<config-file>:/root/.config/idea/options/<config-file> env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}ここで、
<linter>はリンター名を表し、QODANA_TOKENはプロジェクトトークンを表します。
関連ページ:
YAML ファイル
デフォルトでは、Qodana はプロジェクトのルートディレクトリに含まれるファイルから構成を読み取ります。オプションを使用してこのファイル名を上書きできます。カスタム構成ファイルセクションを参照してください。便宜上、このセクションではデフォルトの名を使用して参照します。で適用された構成は、デフォルトのインスペクションプロファイル設定と Qodana リンターのデフォルト構成を上書きします。これは HTML レポートセクションを使用して構成でき、すべての変更が自動的に適用されます。の JSON スキ...
構造検索
構造検索は、JetBrains IDE に組み込まれた強力で柔軟なメカニズムです。検索テンプレートを使用することで、コードベースのセマンティクスを考慮しながら解析できます。独自の検索テンプレートを作成し、Qodana インスペクションとして利用することも可能です。構造検索の仕組み:例として、次の検索テンプレートを考えてみましょう。$Instance$.$MethodCall$($Parameter$) これにより、Java ステートメントを検出できます。のようなハードコードされたテキストを含むス...