m2eclipseで独自のjarを追加する場合
instinctは標準レポジトリに登録されていないので、m2eclipseのメニュー(Maven - add Dependency)からは登録できない。もちろんそれだと困るので、Mavenには独自のjarを追加する機能がある。
install:install-fileを使うんだけど…
mvn install:install-file -Dfile...
コマンドラインからは上記のようにmavenのコマンドを叩いてローカルレポジトリに登録するようだけど、m2eclipseでmaven環境を整えたヌルヌルな俺に言われてもよくわからないw
というわけで、m2eclipseで環境を整えた場合には下記手順でローカルレポジトリに登録、つまりインストールする。
手順
- Run - External Tools - Open External Tools Dialog... を開く
- 各所入力
- Nameは適当に
- Base Directryは、Browse Workspace...を開いて、作成中のプロジェクトを選択。多分何でもいいけど。
- Goalsは、Select...を開いて、maven-install-pluginのinstall-fileを選択。"install-file"で検索するとよい。
- パラメータ欄に以下を入力
- file : C:/hogehoge/instinct-0.1.6.jar
- 自分で展開したjarの絶対パスを入力
- groupId : com.googlecode.instinct
- ライブラリの名前を入れてもいいし、そのパッケージ名+ライブラリ名とかでも。
- artifactId : instinct-core
- ライブラリの名前とか。
- version : 0.1.6
- 展開したjarのバージョンを入力
- packaging : jar
- jarならjar。warならwarなのかな。
- generatePom : true
- そのDependencyの定義ファイル(xxxx.pom)をとりあえず作るように。
- file : C:/hogehoge/instinct-0.1.6.jar
- Runして、最終的に以下のようになれば成功。
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Tue Apr 08 16:39:11 JST 2008 [INFO] Final Memory: 1M/5M [INFO] ------------------------------------------------------------------------
- BUILD FAILEDになった場合…
- Goalsの設定はinstall-fileになっていますか?
- fileの指定は正しいですか?
プロジェクトのDependencyに登録する
上記方法で、ローカルレポジトリにinstinct-core-0.1.6が登録されたはず。さっそくm2eclipseのMaven - add Dependencyメニューから追加しよう…としたが、検索しても出てこない><
ので、pom.xmlに直接記述する。
<dependency> <groupId>com.googlecode.instinct</groupId> <artifactId>instinct-core</artifactId> <version>0.1.6</version> </dependency>
関連ライブラリも自動で登録できるようにする
instinctはjUnit4とかjMockとかに依存してるけど、このままだと取り込まれない。ので、ローカルレポジトリのinstinctの定義に、依存ライブラリを記述する。
m2eclipseの場合、ローカルレポジトリはユーザのホームディレクトリに展開される。windowsの場合は、下記のような感じでたどると、"instinct-core-0.1.6.pom"というファイルに辿り着くはず。
C:\Documents and Settings\(ユーザ名)\.m2\repository\com\googlecode\instinct\instinct-core\0.1.6
ここに
instinct-core-0.1.6.pomを保存したら、package explorerのプロジェクトのアイコンからMaven - updateDependenciesを選択するか、pom.xmlを保存し直すかすると、読み込み直してくれる。
<?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>com.googlecode.instinct</groupId> <artifactId>instinct-core</artifactId> <version>0.1.6</version> <description>POM was created from install:install-file</description> <dependencies> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> </dependency> <dependency> <groupId>ant</groupId> <artifactId>ant-junit</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>ant</groupId> <artifactId>ant-launcher</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.1_3</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.jmock</groupId> <artifactId>jmock</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.jmock</groupId> <artifactId>jmock-legacy</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> <version>1.1</version> </dependency> </dependencies> </project>