Reuse test dependeny jars in parent project

Hi,

I have a multi project setup. In one of the child projects I have test dependency as below,

testCompile 'org.springframework:spring-test:3.2.16.RELEASE’
testCompile ‘junit:junit:4.12’

How I can reuse these two jars in parent project without redefining these two jars in build.gradle? Basically I don’t want to repeat the above two lines in all of my projects.

There’s a couple of options.

Option 1: Declare a variable in the parent project and use it in one or more projects

ext {
   libraries = [
      testCommon: ['org.springframework:spring-test:3.2.16.RELEASE', 'junit:junit:4.12'] 
   ] 
} 

project(':a') {
   dependencies {
      testCompile libraries.testCommon
   } 
}

project(':b') {
   dependencies {
      testCompile libraries.testCommon
   } 
}

Option 2: Declare in one project and re-use the configuration in another

project(':a') {
   configurations {
      testCommon
      testCompile.extendsFrom testCommon
   } 
   dependencies {
      testCommon 'org.springframework:spring-test:3.2.16.RELEASE'
      testCommon 'junit:junit:4.12'
   } 
}

project(':b') {
   dependencies {
      testCompile project(path: ':a', configuration: 'testCommon') 
   } 
}
1 Like