2019年12月18日
Spring Boot2系にあげたときにやったことをまとめようと思います。関連記事 今回はGradleの話です。Upgrading your build from Gradle 4.x to 5.0を参考に作業しました。 これだけじゃなかったと思うので、思い出したら追記します。もうGradle 6出ているんですが、まだそんなに対応していないのでとりあえず5の話です。
まず、4系の最新までバージョンをあげます。
build.gradleにこのように書いて、 ./gradlew wrapper
を実行します。
wrapper {
gradleVersion = "4.10.2"
distributionType = Wrapper.DistributionType.ALL
}
次にビルドです。
./gradlew build
コマンドを実行すると、Gradle 5.0で非互換になる機能を利用しているとメッセージが出力されることがあります。
--warning-mode all
オプションをつけて実行すると詳細を確認することができます。参考
大きな書き換えは、dependencies指定するcompilie
をimplementation
に書き換えることでした。4.7からcompileとかruntimeなどが非推奨になっています。参考implementation
に変更することで依存関係が伝播しなくなるため明確になり、結合度が低くなります。
fooモジュールとbarモジュールで構成されたマルチモジュールプロジェクトがあるとします。 build.gradle(fooモジュール)
dependencies {
implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-csv"
}
build.gradle(barモジュール)
dependencies {
implementation project (":foo")
}
jackson-dataformat-csv
がimplementation
で指定されているので、barモジュールではjackson-dataformat-csv
の依存関係は伝播しません。
5.1からアーカイブファイルの名前を変更するときarchivesBaseName=hoge
を使うようになりました。 jar.baseName=hoge
は非推奨になりました。参考
Gradle 3.x -> 4.10.2にするときにLombokが怒ってました。Lombok 1.18.2以上にしてねとのことでした。参考