JDK しかない、だと…
ビルドツールのない環境(使えるのは JDK のみ)で Spring Boot の実行可能な jar ファイル(fat jar
が正式名称なんですかね?)に含まれるリソース(コンパイル不要)の一部の 差し替え が必要になって、jar コマンドでなんとかした ときのメモ。
とっさの対応
時間がなくて思いつきで えいや でやった方法です。
※オリジナルの jar ファイルの 展開 と リソースの 差し替え については割愛
作業用パス構成(一部)
+ (作業ディレクトリ)
+ work
+ BOOT-INF
+ classes
+ lib
+ META-INF
+ MANIFEST.MF
+ org
+ springframework
+ ...
コマンド
jar cvfm0 Hoge.jar ./work/META-INF/MANIFEST.MF -C ./work .
実行可能な jar ファイルはできたものの、0 オプション
で 全ファイルを無圧縮 としたため、ファイルサイズが 数倍 に膨れ上がりました。。。
まっとうな対応
無圧縮にしたかったのは BOOT-INF/lib
配下の jar ファイルだけだったので、落ち着いてからやり方を調べてみました。
事前準備として BOOT-INF/lib
配下の jar ファイルだけ別のパスに移動させておきます。
作業用パス構成(一部、BOOT-INF/lib移動後)
+ (作業ディレクトリ)
+ work
+ BOOT-INF
+ classes
+ META-INF
+ MANIFEST.MF
+ org
+ springframework
+ ...
+ work2
+ BOOT-INF
+ lib
コマンド
jar cvfm Hoge.jar ./work/META-INF/MANIFEST.MF -C ./work .
jar uvf0 Hoge.jar -C ./work2 .
オリジナルの jar ファイルと同じように、BOOT-INF/lib
配下の jar ファイルだけが無圧縮で格納された実行可能な jar ファイルができました。