Android Studio最速入門~効率的にコーディングするための使い方

第34回 バージョン管理 ─プロジェクト管理ファイルについて[中編]

この記事を読むのに必要な時間:およそ 7.5 分

はじめに

今回と次回の2回にかけて,イマイチよくわかってないAndroid Studioのプロジェクト管理ファイルについて解説します。途中で飽きちゃう人のために,最低限共有する必要のある(バージョン管理する必要のある)管理ファイルを紹介します。

ここでの対象は.ideaディレクトリだけなので,説明のしやすさも兼ねて <PROJECT_HOME>/.idea/.gitignoreを作成し.ideaディレクトリに対するホワイトリスト」を提示していきます。

図1 新しく<PROJECT_HOME>/.idea/.gitignoreを作成する

図1 新し

リスト1 最低限必要な<PROJECT_HOME>/.idea/.gitignoreの例

*.xml
!/gradle.xml

リスト2 最低限必要な<PROJECT_HOME>/.idea/.gitignoreの例.gitignoreの内容

/.gradle/
/local.properties
.DS_Store
*.iml

前回紹介した.gitignorebuild.gradle以外を除外するため,Android Studioにとっては「Gradleのプロジェクト」と認識します。⁠Android Studioのプロジェクト」として認識させるには<PROJECE_HOME>.ideaディレクトリがあることで,その中身を必要最低限まで削るとgradle.xmlだけが残ります。

.idea/gradle.xmlだけあればAndroid Studioは,そのディレクトリを自身のプロジェクトとして認識します。あとは,必要に応じて他に共有したい設定を追記していくことになります。どんなときに/どの設定ファイルを共有したら良いかが中編・後編の内容になります。

[注意].idea/gradle.xmlを共有するときの注意事項

Android Studioのバージョンやプラットフォームによってバラツキがあるのですが,v0.3.6~v0.3.7のWindows版では gradle.xml にその環境の絶対パスが含まれます(詳しくは本編で解説します)⁠これが共有の妨げになるので,gradle.xmlをコミットする前に,その中身を確認してください。

リスト3 絶対パスが含まれているgradle.xmlの例

<option name="linkedExternalProjectsSettings">
  <GradleProjectSettings>
    <option name="distributionType" value="DEFAULT_WRAPPED" />
    <option name="externalProjectPath" value="C:\Users\masanobuimai\AndroidStudioProjects\MyApplication" />
  </GradleProjectSettings>

"externalProjectPath"のvalueに絶対パスが設定されているようであれば,これを直接編集してリスト4のように修正してください。設定している内容は意味的に変わりありません。IntelliJ IDEA13などは絶対パスではなく$PROJECT_DIR$ と登録されるので,単純にAndroid Studio側のバグなのだと思います。

リスト4 絶対パスを除いたgradle.xmlの例

<option name="externalProjectPath" value="$PROJECT_DIR$"/>

Android Studioの管理ファイルについて

Android Studioの管理ファイルは大きく分けて次の二種類があります。

モジュール定義ファイル*.iml
Android StudioやIntelliJでは,プロジェクトは「場」であって,その中にモジュールという「実体」があります。Eclipseにたとえると,プロジェクトが(Eclipseの)ワークスペースで,モジュールが(Eclipseの)プロジェクトです。
モジュール定義ファイル*.imlはそのモジュールごとの定義情報を保存しています。もう少し具体的に言うと「Project Structure」の設定内容がここに保存されます。ちなみに,このファイルの中身はXMLです。
.ideaディレクトリ配下の設定ファイル
<PROJECT_HOME>直下にある.ideaディレクトリです。ここには主にプロジェクト固有の設定情報が格納されます。もっと具体的に言うと「Preferences」「Proejct Settings」部分のほとんどと,⁠本連載ではまだ説明していませんが)⁠Run/Debug Configuration」一部が保存されます。
このディレクトリに保存される設定ファイルもすべてXMLファイルです。厳密なルールはありませんが「Preferences」の設定項目ごとに設定ファイルが独立しています。
Android Studioは,この.ideaディレクトリを含むディレクトリを「プロジェクト」と認識します。ディレクトリ名が.ideaなのは,Android StudioのベースとなったのがIntelliJ IDEAだからです。実を言えば,IntelliJベースの他のIDEもすべてこの形式なので,複数のJetBrains系IDEを併用している場合はちょっとした混乱の元になります。

これらの設定ファイルも基本的にはバージョン管理下に置き共有するのが望ましいと言われています。一応,公式な見解があり,それに従うと次のようになります。

これ,間違ってはいないのですが,正解でもありません。共有しないほうが良いファイルはもう少しあり,一部の設定ファイルは条件に応じて共有するかどうかを決めた方がよいものがあります。そして何より情報が古いです。

また,github / gitignoreにあるJetBrains.gitignoreもだいぶ極端な設定になっています。

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai

コメント

コメントの記入