LoginSignup
7
6

More than 5 years have passed since last update.

Spring Bootのfat jarから外部のjarを読み込む

Last updated at Posted at 2018-06-24

Spring Bootのfat jarは依存ライブラリのjarを内包しているが、実行時に外部のjarを読み込むにはどうすればよいか記す。

あまり有ることではないが、ライブラリが環境毎に異なるjarを提供している場合などに使用する。

環境

  • Java 8
  • Spring Boot 2
  • Gradle 4.7

設定方法

Executable Jarを起動するのにデフォルトではJarLauncherが使用され、jar内のBOOT-INF/lib/配下を見に行く。
実行時にクラスパス等を変更するには代わりにPropertiesLauncherを使う。

build.gradleの設定

bootJar {
    manifest {
        attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
    }
}

loader.pathの指定

追加したいクラスパスをloader.pathプロパティで指定する。環境変数LOADER_PATHでもよい。
ありがたいことに、ディレクトリ指定もできて、jar or zipファイルを再帰的にスキャンしてくれる。

export LOADER_PATH=/develop
java -jar app.jar

参考

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6