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に書いた内容はサブプロジェクトにも適用されるので、後者が安心ですね。