Я совершенно новый для градации, и мне нравится эта система сборки для ее выразительной силы. Однако некоторые вещи выглядят довольно сложно.Конфигурация проекта DRY в Gradle
Рассмотрим код конфигурации:
project(":A") {
apply plugin: "X"
apply plugin: "Y"
someVar = "aa"
dependencies {
compile project(":C1")
compile project(":C2")
compile project(":C3")
}
}
project(":B") {
apply plugin: "X"
apply plugin: "Z"
someVar = "bb"
dependencies {
compile project(":C1")
compile project(":C2")
}
}
Я хочу сделать этот конфиг как можно более сухой. Что я наивно пытался сделать:
void myProjectType(someVarValue){
apply plugin: "X"
someVar = someVarValue
dependencies {
compile project(":C1")
compile project(":C2")
}
}
project(":A") {
myProjectType("aa");
apply plugin: "Y"
dependencies {
compile project(":C3")
}
}
project(":B") {
myProjectType("bb");
apply plugin: "X"
}
Выглядит хорошо для меня, но это не работает в граде. Любые предложения, как это сделать правильно?
Если нашли решение половину проблемы, которая выглядит следующим образом:
project(":A"){
...
apply from: "${rootProject.projectDir}/gradle-config/config.gradle"
...
}
однако такой подход не позволяет явную параметризацию «прикладной» части (someVarValue в качестве параметра из предыдущий пример)
Это работает, thx! – user3231055