Maven2 で外部ライブラリ(以下、Jar ファイルと仮定します。)を使いたい場合、POM ファイルに依存性を付加すれば Maven2 が自動的にダウンロードして使用できるようにしてくれます。 ただし、そのライブラリが Maven2 のリモート・リポジトリに存在していない時は、この方法ではうまくいきません。 こういった場合、使用したいライブラリを(ダウンロードなどで)入手し、それを自分のプロジェクトから使用できるようにしなければなりません。
ちなみに、こういう状況は
- ライブラリがマイナー
- ライブラリがシェア・ウェア
- 自分の成果物を公開したい
などの場合に起こります。
プロジェクトからライブラリを使えるようにする方法には、だいたい次のようなものがあります(他にも方法はあるかと思いますが)*1:
- Jar ファイルをローカル・リポジトリへインストールする
- プロジェクト内にライブラリとして配置する
Jar ファイルをローカル・リポジトリへインストールする
この方法は、入手した Jar ファイルを install プラグインに定義されている「 install-file ゴール」によって ローカル・リポジトリへインストールするというものです。 一応、公式に説明されている方法です。
特徴
- 1度インストールすれば、(PC 上の)どのプロジェクトからも通常の Maven2 プロジェクトとして扱える
- 別途 POM ファイルを用意すれば、Maven2 プロジェクトと同様に依存性などの設定ができる
- インストールのためのコマンドが少々長い
インストール方法
sample.jar という Jar ファイルを
groupId | org.sample |
---|---|
artifactId | sample |
version | 1.0 |
という設定でローカル・リポジトリにインストールするとします。 これには、コマンド・プロンプトを開き、 sample.jar があるフォルダ上でコマンド
mvn install:install-file -Dfile=sample.jar -DgroupId=org.sample -DartifactId=sample -Dversion=1.0 -Dpackaging=jar
を実行します(1行で)。
別途 POM ファイル(pom.xml)を用意しておけば(sample.jar と同じフォルダ内にあるとします)
mvn install:install-file -Dfile=sample.jar -DpomFile=pom.xml
とします。
プロジェクト内にライブラリとして配置する
この方法は、コマンドの実行などがないので比較的手軽ですが、チョット裏技的方法。
特徴
- Jar ファイルの配置と POM ファイルの少々の書き換えだけでよい
- ライブラリが他のライブラリに依存している場合、管理が手間
- 各プロジェクトごとに設定しなければならない
設定方法
まず、プロジェクトのベース・フォルダに「lib」というフォルダを作成し、そこにライブラリの Jar ファイルを配置します。 そして、POM ファイルに以下のような設定を追加します(上記のサンプルと同じ設定をするとします):
<project> ... <dependencies> <dependency> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib/sample.jar</systemPath> </dependency> </dependencies> </project>
<scope>, <systemPath> 要素の設定がミソ。