Как выполнить команду в подпроектной директории для многопроектной сборки Gradle? - PullRequest
1 голос
/ 25 сентября 2019

У меня отличная многопроектная сборка с каждым подпроектом в отдельных репозиториях git.В build.gradle корневого проекта я пытаюсь определить задачу для всех подпроектов, которые будут выполнять некоторые команды git для каждого проекта.Однако рабочий каталог задачи всегда совпадает с корневым каталогом.

Как я могу изменить workingDir в зависимости от текущего подпроекта, выполняющего задачу?

subprojects {
    task someTask{
        def p1 = 'git rev-parse --abbrev-ref HEAD'.execute()
        p1.waitFor()
        println p1.exitValue()
    }
}

1 Ответ

1 голос
/ 25 сентября 2019

Вы можете использовать задачу Gradle Exec , которая использует каталог проекта в качестве рабочего каталога по умолчанию.Задача также имеет возможность явного изменения рабочего каталога (workingDir).

subprojects {
    task someTask(type:Exec) {
        commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
        doLast {
            logger.lifecycle('Exit value was ' + execResult.exitValue)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...