Могу ли я использовать как dir, так и buildFile в задаче GradleBuild?

#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 файл. Вам придется найти другое решение вашей проблемы.