Привет, ребята, у меня есть 5 проектов в моем монорепо, и я пытаюсь разделить задачу между ними.Я почти достиг того, чего хочу, но у меня проблемы с установкой переменной dirPath для каждого проекта.Ниже artifactUploads.gradle
, который содержит мой customPlugin и задачу
task copyReleaseBuilds() {
println "test log"
doLast {
//stuff
}.assertNormalExitValue()
}
}
}
}
class UploadPlugin implements Plugin<Project> {
void apply(Project project) {
println "UploadPlugin entry"
//Create container instance for config object
NamedDomainObjectContainer<Config> configContainer =
project.container(Config)
project.extensions.add('uploadConfigs', configContainer)
project.task('uploadTask') << {
def uploadConfig = project.extensions.getByName('uploadConfigs')
println uploadConfig
//Prints DirName
println uploadConfig
uploadConfig.all{
println "{$uploadConfigs.dirPath}"
}
}
}
}
class Config{
String dirPath
Config(String dirPath){
this.dirPath = dirPath
}
}
//uploadConfigs {
// dirPath = ""
//}
Каждое приложение build.gradle
имеет эту строку с различными значениями для dirPath
uploadConfigs{
dirPath = "hca/"
}
Я продолжаю получать эту ошибку, когда я пытаюсь построить
Could not set unknown property 'dirPath' for Config container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer.
У меня проблемы с пониманием этого.У меня это работало, когда у моего класса Config также была переменная имени, такая как
class Config{
String name
String dirPath
Config(String name){
this.name = name
}
}
Тогда соответственно в каждом build.gradle
uploadConfigs{
Nch{
dirPath = "nchmc/"
}
}
Это сбивает с толкуя не понимаю, как установить свойство dirPath для моего контейнера, в котором находится тип Config.
Спасибо