我有项目A和项目B
项目单元测试(在测试目录下)需要使用项目B main / resources目录下的资源文件。
项目A上的gradle.build:
dependencies {
.. testCompile project(':web')
}
项目B上的gradle.build:
task testJar(type: Jar) {
classifier 'resources'
from sourceSets.main.resources
}
仍然失败。 我不确定我错过了什么?
谢谢你, 射线。
答案 0 :(得分:3)
在这样的项目中添加依赖项时:
testCompile project(':B')
你取决于项目B产生的默认工件,它通常是默认的jar。如果你想依赖自定义jar,比如测试jar,资源jar或胖罐,你必须明确指定。您可以将自定义工件添加到配置中,并依赖于配置,如下所示:
在B的build.gradle中:
configurations {
foo
}
task testJar(type: Jar) {
classifier 'resources'
from sourceSets.main.resources
}
artifacts {
foo testJar
}
然后在A中使用它:
dependencies{
testCompile project(path: ':B', configuration: 'foo')
}
要验证,您可以将此任务添加到A:
task printClasspath()<<{
configurations.testCompile.each{println it}
}
打印:
${projectRoot}\B\build\libs\B-resources.jar