ヒトリ歩き

愚痴とかいろいろ書きます

MavenでローカルのJarファイルを依存関係に追加する

はじめに

訳あって、ローカルリポジトリにも登録できないJarファイル(ローカルのフォルダにしか置けない)をMavenで 使用するための方法を知りたく、少し調べてみた。
そもそも、こんな使い方をすることはほぼないと思うのだが、レガシーなシステムをやっていることもあり、 ちょっと必要になったので調べた。

Mavenで使うには、systemPathを使う

使用したいJarファイルをdependenciesに追加する際に、scopeはsystemで設定し、systemPathにJarファイルの 配置先を設定するだけで依存関係のJarに追加してくれる。

<dependencies>
  <dependency>
    <groupId>aa</groupId>
    <artifactId>aa</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/test1-0.0.1-SNAPSHOT.jar</systemPath>
  </dependency>
</dependencies>

groupId、artifactId、versionは適当に設定。
scopeタグは、systemを指定して、systemPathタグに対象のJarファイルのパスを指定。
ここではプロジェクト直下のlibフォルダにtest1-0.0.1-SNAPSHOT.jarを配置したので、そのJarファイルのパスを設定。
${basedir}は、pom.xmlファイルがあるフォルダまでのフルパスが設定された変数。

maven.apache.org

最後に

意外と簡単にローカルのJarファイルをMavenで扱うことが出来た。
これでレガシーなシステムの開発で途中からMavenの導入のハードルが少し下がるかなと思う。

参考

ameblo.jp