2013年1月30日水曜日

外部のライブラリをどうするか

gitで管理していたAndroidプロジェクトがありました。

Project1
├.git
├src
├res
└libs

こんな感じです。ディレクトリ全部を書き出したわけじゃないです。こんな感じだと思ってください。

このプロジェクトでは外部のAndroidライブラリを利用することになりました。jarではなく、eclipseのプロジェクトの状態でソース形式で配布されているやつです。

workspace
├Project1
│├ git .
│├src
│├res
│└libs
└Library1
 ├src
 ├res
 └libs

こんな感じにしました。ここのLibrary1もプロジェクトなので、こうするのが自然かなぁ、と思ってこんな感じにしました。
ただ、これだとgitの管理下にLibrary1がないんです…。
Project1だけgitで管理しても、Library1も揃わないとビルド出来ません。かと言って、自分が修正するでもないプロジェクトを別のリポジトリに登録するのも変な感じだし…と、困っていました。

知人に聞いてみたら、Library1を他のプロジェクトでも繰り返し使うならリポジトリとして登録して、submoduleにするのが良いのではないか、という意見をもらいました。
(submoduleって何だろう?という状態です…)
あとはProject1のどこかにLibrary1を含めてしまうか、Library1をjar化してProject1の中に含めるか等の案をもらいました。

まずは一番すっきりしそうなLibrary1のjar化を試してみることにしました。ダメでした…。
少し調べただけですが、リソースを含むライブラリプロジェクトはjarには出来なさそうですね(出来るなら配布元もjarにしてそうですしね)。

続いて、プロジェクトの中にプロジェクトを入れてしまうことにしました。submoduleがよくわかってませんし。
これは簡単ですね。

workspace
└Project1
 ├ git .
 ├src
 ├res
 └libs
  └Library1
   ├src
   ├res
   └libs

こうするだけです。
これならgit管理下に入ります。プロジェクトの中にプロジェクトがあるというのは変かな?と思っていましたが、やってみるとそこまで違和感はなかったです。
ただ、Library1が外部のSDKですので、公開リポジトリに置くのはマズそうな気はします…。今回は非公開のプロジェクトだったので、とりあえずこのまま進めることにしました。

こういう場合の定番の方法を知りたいですね。

0 件のコメント:

コメントを投稿