よしだのブログ

サブタイトルはありません。

GitHub上の Apache ManifoldCF を、eclipse でビルドするまでの手順

eclipse のバージョンは Kepler を前提とします。

追記 4/9: プロジェクトのインポートとビルドの順番を逆にして、ビルドを先にやるように修正しました。ビルドを先にやると jar へのクラスパスまで自動で通ります。

  1. forkする

GitHub上で fork します。

  1. git clone する

git clone コマンドで、自分のPC上に fork したリポジトリをクローンします。その際に、指定するURLが間違えやすいので注意です。

f:id:yoshi0309:20140401125650p:plain

git clonehttps://github.com/yoshi0309/manifoldcf.git

3.ブランチを切り替える

デフォルトのままだと CONNECTORS-63 というかなり古いブランチになるので、trunc に切り替えます。

cd manifoldcf
git checkout -b origin/trunk

4.ant でビルドを実行

以下の順番で、ターゲットを実行します。make-core-deps / make-deps 実行後に lib フォルダ以下に必要なライブラリもダウンロードされます。実行後に、ビルドパスに jar を設定します。

  • make-core-deps
  • make-deps
  • build

5.eclipse にクローンしたリポジトリを読み込ませる。

ここがポイント。 Javaパースペクティブを開いて、New Project -> Java Project を選択し、Location に clone したローカルのパスを選択します。そうすると、ソースのパスが自動的に読み込まれてハッピーになれます。

ちなみに、jar などのライブラリはパスに設定されないので、あとで手動で設定します。ビルドを先にやると、jar も自動でビルドパスに入ります。

f:id:yoshi0309:20140401125659p:plain

また、上記操作後、Gitパースペクティブを開くと、ちゃんとローカルのリポジトリも登録されます。ちなみに、svn の場合は、登録されませんでした。なので、コマンドで別途作業をする必要があります。

f:id:yoshi0309:20140401125654p:plain

アンチパターン:Import Project

Gitパースペクティブからリポジトリを読み込んで、その後、リポジトリを右クリックして、Import project を押下したくなるのですが、これをやると何故かクラスパスなどが設定されません。svn を日常的に使っているとやりたくなるので要注意です。*1

manifoldCF の場合、多数の connector が存在し、それぞれに src/main/java と src/test/java があるので、手動でやるとかなり面倒です。上記の手順がおすすめです。

f:id:yoshi0309:20140401125656p:plain

*1:ちなみに、svn でも eclipse 上で checkout すると同じ現象になりました。ううむ。