> mvn install:install-file -Dfile=<JARへのパス> ...かといって、Antの時代に戻ってプロジェクトの lib フォルダの下にJARを直接置くとすると、今度はIDE(たぶんEclipse?)のクラスパス設定(.classpathなど)もSubversionで構成管理しなければならない上、mvn eclipse:eclipse を実行したときはクラスパス設定はクリアされてしまうので、その度にまたIDE上でクラスパス設定をしなければならない。めんどうくさい・・・
(1) プロジェクト内にMavenリポジトリを作る
(2) system スコープと ${basedir} を使う
my-projectリポジトリのレイアウトや pom ファイルの書き方は、ローカルリポジトリなどを参考にする。m2repo フォルダおよびそれ以下のJARライブラリは、Subversionにつっこんで構成管理する。
+-- src/
+-- m2repo/
+-- javax/activation/activation/1.1/
+-- activation-1.1.jar
+-- activation-1.1.pom
+-- pom.xml
[pom.xml]こうすることで、m2repo フォルダ以下に置かれたJARは通常のJARと同じように pom.xml の依存設定に書けるようになる。
<project>
...
<repositories>
<repository>
<id>local</id>
<url>file:m2repo</url>
</repository>
</repositories>
[pom.xml]${basedir} はMavenプロジェクトのルートパスを表す変数。system スコープは本来、JREなどのシステムが元々持っているJARをMavenから参照するための仕組みで、<systemPath>でJARのパスを直接指定できる。それを悪用(?)して上記のように書いてしまうことで、Ant時代と同じようにプロジェクト内でJARを管理して使うことができる。
<project>
...
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${basedir}/lib/activation.jar</systemPath>
</dependency>
</dependencies>
my-project(2)は(1)の方法に比べると非常にお手軽なのだが、本来の system スコープの使い方をしていないようで、少し邪道な気配がしないでもない。
+-- src/
+-- lib/
+-- activation.jar
+-- pom.xml
ouobpoさんの読者になろう
ブログの更新情報が受け取れて、アクセスが簡単になります