如果您想使用工件依赖项来拥有:
- ProjectB 的源类依赖于 Project A 的源类
- ProjectB 的测试类依赖于 Project A 的测试类
那么build.gradle中 ProjectB 的依赖项部分应如下所示:
dependencies {
compile("com.example:projecta:1.0.0")
testCompile("com.example:projecta:1.0.0:tests")
}
为此,ProjectA 需要构建一个-tests jar 并将其包含在它生成的工件中。
ProjectA 的build.gradle应该包含如下配置:
task testsJar(type: Jar, dependsOn: testClasses) {
classifier = 'tests'
from sourceSets.test.output
}
configurations {
tests
}
artifacts {
tests testsJar
archives testsJar
}
jar.finalizedBy(testsJar)
当 ProjectA 的工件发布到您的工件时,它们将包含一个-tests jar。
ProjectB 的依赖项部分中的testCompile将引入-tests jar 中的类。
如果您想在ProjectB中包含 Flat ProjectA 的源代码和测试类以用于开发目的,那么 ProjectB 的build.gradle中的依赖项部分将如下所示:
dependencies {
compile project(':projecta')
testCompile project(path: ':projecta', configuration: 'tests')
}