I have approximately the following setting:
test-utils/build.gradle:
buildscript { repositories { jcenter() } dependencies { classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.1.RELEASE' } } apply plugin: 'java' apply plugin: 'spring-boot' dependencies { compile ('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.mockito' exclude group: 'org.hamcrest' } compile 'org.mockito:mockito-core:2.0.41-beta' compile 'org.assertj:assertj-core:3.3.0' }
main/build.gradle:
buildscript { repositories { jcenter() } dependencies { classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.1.RELEASE' } } apply plugin: 'java' apply plugin: 'spring-boot' dependencies { testCompile project(':test-utils') }
But for some reason, it seems that the spring boot plugin forces the mockito version to return to 1.x:
# ./gradlew :main:dependencies --configuration=testCompile testCompile - Compile classpath for source set 'test'. +--- project :test-utils +--- org.springframework.boot:spring-boot-starter-test: -> 1.3.1.RELEASE | +--- junit:junit:4.12 | +--- org.springframework:spring-core:4.2.4.RELEASE | \--- org.springframework:spring-test:4.2.4.RELEASE | \--- org.springframework:spring-core:4.2.4.RELEASE +--- org.mockito:mockito-core:2.0.41-beta -> 1.10.19 | +--- org.hamcrest:hamcrest-core:1.1 -> 1.3 | \--- org.objenesis:objenesis:2.1 \--- org.assertj:assertj-core:3.3.0
If I take the spring loading module from the equation, everything will work as expected:
# ./gradlew :main:dependencies --configuration=testCompile testCompile - Compile classpath for source set 'test'. +--- project :test-utils +--- org.springframework:spring-core:4.2.4.RELEASE (*) +--- org.springframework:spring-test:4.2.4.RELEASE | \--- org.springframework:spring-core:4.2.4.RELEASE (*) +--- junit:junit:4.12 +--- org.mockito:mockito-core:2.0.41-beta | +--- net.bytebuddy:byte-buddy:1.0.2 | \--- org.objenesis:objenesis:2.1 \--- org.assertj:assertj-core:3.3.0
What is the spring boot plugin, and how can I say it is not?
source share