Я работаю в мультипроектной системе (с 40+ подпроектами). Каждый подпроект имеет свой собственный макет (большинство следует за общим макетом, но некоторые отличаются). Среди подпроектов у меня есть эти два:Грейд-зависимости от исходного набора различных проектов
- testjunit
- sourceSets
- lptfExperimental
- other source sets
- basicservices
- sourceSets
- testacceptance
- other source sets
мне нужно сделать исходный набор basicservices-testacceptance
зависит от мощности источника устанавливается testjunit-lptfExperimental
.
Я попытался сделать:
dependencies{
testacceptanceCompile project(':testjunit').sourceSets.lptfExperimental.output
}
И
dependencies{
project.parent.subprojects.each{prj ->
if(prj.name == "testjunit")
testacceptanceCompile prj.sourceSets.findByName('lptfExperimental').output
}
Но в обоих случаях я получаю следующее сообщение об ошибке:
FAILURE: Build failed with an exception.
Where: Script 'C:\Development\defaults.gradle' line: 144
What went wrong: A problem occurred evaluating script. Could not find property 'lptfExperimental' on SourceSet container.
Просто дополнительная информация: эта зависимость объявлена в файле с именем defaults.gradle
, который применяется в build.gradle
проекта basicservices
.
/defaults.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
...
sourceSets {
...
// test acceptance
testacceptance{
java{
srcDir 'test/acceptance/src/java'
}
resources {
srcDir 'test/acceptance/src/java'
}
}
...
}
// default dependencies
dependencies{
testacceptanceCompile project(':testjunit')
testacceptanceCompile project(':testjunit').sourceSets.lptfExperimental.output
}
...
/testjunit/build.gradle:
...
sourceSets{
...
lptfExperimental{
java {
srcDir 'lptf-experimental/src/java'
}
resources {
srcDir 'lptf-experimental/src/java'
}
}
...
/basicservices/build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
apply from: '../defaults.gradle'
dependencies{
...
compile project(':testjunit')
...
}