GeekFactory

int128.hatenablog.com

Spring Boot + Gradleで依存関係のバージョンが下がる場合の対応策

GradleでSpring Boot Pluginを利用している場合、依存関係のバージョンが勝手に下がることがあります。例えば、

という依存関係がある場合、アプリのプロジェクトには spock-core-1.1-groovy-2.4 が入る気がしますが、実際には spock-core-1.0-groovy-2.4 の古いバージョンが入ります。

これは、spring-boot-dependenciesのpom.xmlで定義されているバージョンが優先されてしまうためのようです。

https://github.com/spring-projects/spring-boot/blob/1.5.x/spring-boot-dependencies/pom.xml

<spock.version>1.0-groovy-2.4</spock.version>

アプリのプロジェクトで新しいバージョンの依存関係を定義すれば解決します。

  • テスティングフレームワークのプロジェクト → spock-core-1.1-groovy-2.4
  • アプリのプロジェクト → テスティングフレームワークのプロジェクト
  • アプリのプロジェクト → spock-core-1.1-groovy-2.4

もしくは、ビルドスクリプトに以下を追記して、spring-boot-dependenciesのバージョンを上書きします。

ext.'spock.version' = '1.1-groovy-2.4'

extに書いた内容はサブプロジェクトにも適用されるので、後者が安心ですね。