本エントリでは、チーム開発でIntelliJ IDEAを使う場合に、
インスペクションルールを統一するために必要な設定の手順を示します。

IDEA用の設定とGit共有を説明した後、
CIツールでのインスペクションの実行方法も説明します。

この手順では「.idea」配下のファイルをGitで共有しますが、
本手順の前に、最低限Git管理に追加しておくファイルは以下のエントリを参考にしてください。

Gitで共有管理すべきIntelliJ IDEAの設定ファイルのメモ
http://takemikami.com/2018/08/29/GitIntelliJ-IDEA.html

適用するインスペクションの設定

まず初めにプロジェクト用のインスペクションルールの設定を行います。

Preferences → Editor → Inspections
と選ぶと、以下のような画面が表示されます。

ここではDefaultのルールをプロジェクト用に設定するので、
ProfileをIDのDefaultに変更した後、
歯車ボタン → Copy to Project を選びます。
Profile名を指定して、OKを押して保存します。

「.idea/inspectionProfiles/」配下に指定した定義が反映されていることを確認しておきます。

インスペクションのルールは、
この画面から必要に応じてカスタマイズします。

設定ファイルのGitへの追加

上記の手順で生成された設定ファイルをGit管理に追加します。
具体的には以下のファイルを追加することになります。

  • .idea/inspectionProfiles/Default.xml
  • .idea/inspectionProfiles/profiles_settings.xml

「.gitignore」ファイルは、以下のようなイメージになります。

.idea/*
!.idea/gradle.xml
!.idea/misc.xml
!.idea/inspectionProfiles/Default.xml
!.idea/inspectionProfiles/profiles_settings.xml

CIツールでのインスペクションの実行

ここまでで開発者の間でインスペクションルールを統一することが出来ました。

最後に、CIツールでも同じインスペクションルールで、
チェックできるように設定していきます。

IDEAにはコマンドラインからインスペクションを実行する機能があるので、
この機能をCIツールで実行することにします。

Running Inspections Offline | Intellij IDEA Help https://www.jetbrains.com/help/idea/running-inspections-offline.html

例えば、Mac OSの場合は、
以下のようにしてインスペクションを実行することが出来ます。

$ mkdir report
$ /Applications/IntelliJ\ IDEA.app/Contents/bin/inspect.sh `pwd`/build.gradle `pwd`/.idea/inspectionProfiles/Default.xml `pwd`/report -v1

CIツールから実行する場合は、
IntelliJと必要なプラグインを含んだDockerイメージを作って、
そのイメージを使ってインスペクションを実行することになるでしょう。

また、以下のように、
CIからインスペクションを呼び出すためのラッパーを作っている方もいます。
これを使うと、CIツールのログに結果が表示されるので、
レビュアーの確認作業もスムーズに出来るでしょう。

IntelliJ IDEA CLI Inspector Wrapper | GitHub
https://github.com/bentolor/idea-cli-inspector