SpringBootのJarのサイズをめっちゃ小さくする!

SpringBootのJarのサイズを小さくするといえば、ぼぼさんのこれがあたまおかしくて有名ですが

qiita.com

今回はこういうのを作ってみました。

github.com

## demo-fat

の方は普通のSpringBootアプリです。

❯ cd demo-fat
❯ ./mvnw clean package
❯ ls -ahl target/demo-fat-0.0.1-SNAPSHOT.jar
-rw-rw-r — 1 bufferings bufferings 16M Sep 30 22:16 target/demo-fat-0.0.1-SNAPSHOT.jar

16MBあります。Fatですねぇ。もちろん普通に起動できます。

❯ java -jar target/demo-fat-0.0.1-SNAPSHOT.jar
…
2018–09–30 22:29:04.617 INFO 32639 — — [ main] com.example.demo.DemoApplication : Started DemoApplication in 3.852 seconds (JVM running for 4.464)
…

## demo-thin

こっちもアプリのソースはdemo-fatと同じです。だけど・・・

❯ cd demo-thin
❯ ./mvnw clean package
❯ ls -ahl target/demo-thin-0.0.1-SNAPSHOT.jar
-rw-rw-r — 1 bufferings bufferings 11K Sep 30 22:24 target/demo-thin-0.0.1-SNAPSHOT.jar

11KBです!(∩´∀`)∩ワーイ!チイサイー!!

もちろん起動できます。

❯ java -jar target/demo-thin-0.0.1-SNAPSHOT.jar
…
2018–09–30 22:30:51.689 INFO 1303 — — [ main] com.example.demo.DemoApplication : Started DemoApplication in 3.012 seconds (JVM running for 4.987)
…

起動時間もあんまり変わりません!種明かしは次回!おやすみなさい!

2018-10-02 追記

書いた

bufferings.hatenablog.com