#gradle
#gradle
Вопрос:
Я пытаюсь вызвать задачу gradle из подкаталога, используя другой файл builg.gradle. У меня есть следующая задача:
task(subTask, type: GradleBuild) {
dir = new File(project.projectDir, "db/" project.dbName)
buildFile = new File(project.projectDir, "build.gradle.subdir")
tasks = [params,...]
startParameter.projectProperties = [env: project.env]
}
Я могу передать ‘dir’ или ‘buildFile’, но когда я передам оба, тогда ProjectDir будет каталогом, в котором находится переданный ‘buildFile’, а не тот, который я передаю как ‘dir’, и я бы хотел, чтобы они были в 2 разных каталогах, как показано вышезадача. Есть идеи, как это можно сделать?
обновление: итак, у меня есть следующие файлы:
build.gradle build.gradle.subdir db/dbA/ db/dbA/gradle.properties db/dbB/ db/dbB/gradle.properties
из-за некоторых исторических событий в настоящее время мы делаем следующее: cp build.gradle.subdir db/dbA/build.gradle cd db / dbA ../gradlew задача…
и мне нужно сделать это для каждого подкаталога в db
Поэтому я подумал, что мог бы сделать по крайней мере 1 шаг дальше (хотя все еще хакерский) и устранить необходимость во внешнем сценарии оболочки для выполнения цикла по каталогам и копии cd.
Я почти на месте: я могу вручную скопировать build.gradle.subdir, а затем работает вышеупомянутая задача (без передачи файла сборки), ИЛИ я могу передать buildFile, но не dir, и в этом случае он запускает задачу, но не читает db / dirA / gradle.свойства, необходимые для выполнения задачи.
Комментарии:
1. Чего вы пытаетесь достичь с помощью этого? Каталог проекта всегда является каталогом, содержащим сценарий сборки. Это нельзя изменить.
2. @PeterNiederwieser Я обновил вопрос с более подробной информацией
Ответ №1:
Каталог проекта должен совпадать с каталогом, содержащим сценарий сборки и gradle.properties
файл. Вам придется найти другое решение вашей проблемы.