Gitで共有管理すべきIntelliJ IDEAの設定ファイルのメモ
チーム開発で使用するIDEをIntelliJ IDEAに統一している場合、
IntelliJ IDEA用の設定ファイルをGitで共有しておくと都合の良いことが多いです。
しかし、設定ファイルにはユーザ固有の情報も含まれているので、
内容を理解して共有しなければ、混乱してしまうリスクがあります。
このエントリでは、
gradleを利用したJavaプロジェクトを例に、
以下の流れで、どのように設定ファイルをGitで共有すれば良いかの手順を示します。
- gradleプロジェクトをIDEAで開けるようにする
- 設定画面と設定ファイルの関係を理解する
- 利用するIDEAのプラグインを統一する
# チーム開発で無くても、
# ここで示すファイルをGit管理しておくと、開発環境の復元が便利になります。
gradleプロジェクトをIDEAで開けるようにする
gradleを利用したプロジェクトをIDEAで開こうとすると、
「Import Project from Gradle」というウィザードが開始します。
まずはこのウィザードに遷移せず、すぐにプロジェクトがロードされるように、
必要最低限の設定ファイルを追加します。
結論から言うと、以下の3ファイルがあれば大丈夫です。
- build.gradle
- .idea/gradle.xml
- .idea/misc.xml
それぞれ以下の情報が入っています。
「.idea/gradle.xml」にはウィザードで指定したオプションの情報。
「.idea/misc.xml」にはこのプロジェクトで使用するJavaSDKのバージョンの情報。
「.idea」配下には上記以外のディレクトリ・ファイルが出来ますが、
これらはプロジェクトを開いた時に自動的に生成されるので、
この段階ではGit管理に含める必要はありません。
この段階での「.gitignore」ファイルのイメージは、以下のようになります。
.gitignore
.idea/*
!.idea/gradle.xml
!.idea/misc.xml
設定画面と設定ファイルの関係を理解する
「.idea」配下には前項で示したファイル以外にも、
設定内容や利用しているプラグインに応じて、様々な設定ファイルが作成されます。
ここではIDEAの設定画面と、どのように対応づくかを見ていきます。
例えば、Preferences → Editor → CodeStyleを例に示します。
Schemeを「Stored in Project」か「Stored in IDE」のものに切り替えると、
ヘッダ部分に「For current project」の表示有無が切り替わります。
ヘッダ部分に「For current project」の表示が付いている設定は、
「.idea」配下に設定ファイルが保存されることになります。
CodeStyleの場合は「.idea/codeStyles/」配下に設定が保存されます。
「.idea/codeStyles/」以下をGitの管理下に入れると。
チームでCodeSytleの設定を共有できます。
このように、
「For current project」となっている設定画面で設定を行い、
生成された「.idea」配下のxmlファイルをGit管理に入れることで各種設定を共有できます。
ただし、設定内容によっては、
設定ファイル内にユーザ固有のファイルパスの情報が含まれてしまうものもあるので、
xmlファイルの中身を確認して、
パスが「$PROJECT_DIR$」のように
プロジェクトルートからの相対パスになっていることを確認してから共有します。
# CodeStyleの場合はユーザ固有のパスは含まれないです。
基本的に、この流れで各種設定ファイルを共有できますが、
他のエントリで、ケース別の設定手順は書いていこうと考えています。
参考記事
本エントリの記載にあたり、以下の記事を参考にさせていただきました。
How to manage projects under Version Control Systems
https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems
バージョン管理 ─プロジェクト管理ファイルについて | Android Studio最速入門
http://gihyo.jp/dev/serial/01/android_studio/0035