アーティファクトの依存関係を使用する場合:
- プロジェクト B のソース クラスはプロジェクト A のソース クラスに依存する
- プロジェクト B のテスト クラスは、プロジェクト 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 にクラスを取り込みます。
開発目的で、Flat ProjectA のソース クラスとテスト クラスを ProjectB に含めたい場合、ProjectB の build.gradle の依存関係セクションは次のようになります。
dependencies {
compile project(':projecta')
testCompile project(path: ':projecta', configuration: 'tests')
}