Как разобрать вывод git clone с помощью gradle - PullRequest
0 голосов
/ 04 ноября 2018

Мне нужно проанализировать имя проекта из результатов выполнения команды git clone https://user:pass@domain.com/testing/project.git и перепечатать его как клонированный проект: "имя-проекта" в Gradle.

Когда я запускаю команду просто в терминале без gradle, я получаю шаблон вывода, такой как Клонирование в 'project' ... , за которым следуют дополнительные нерелевантные строки. Название проекта всегда в одинарных кавычках.

Я проверил некоторые предложения, упомянутые в других темах, но все же вывод по умолчанию распечатывается на терминале. Поэтому я не могу взять название проекта оттуда.

Вот мой build.gradle:

def getProjectName = { ->
    def cloneOutput = new ByteArrayOutputStream()
    exec {
        commandLine "git", "clone", "https://user:pass@domain.com/testing/project.git"
        standardOutput = cloneOutput
    }

    return cloneOutput.toString().trim()
}

task printProjectName {
    doLast {
        println getProjectName()
    }
}

Есть идеи?

1 Ответ

0 голосов
/ 04 ноября 2018

Клонирование можно выполнить с помощью плагина Gradle-git . Чтобы использовать плагин, сначала скачайте его:

buildscript {
  repositories { mavenCentral() }
  dependencies { classpath 'org.ajoberstar:gradle-git:0.2.3' }
}

Затем напишите задачу, подобную этой:

import org.ajoberstar.gradle.git.tasks.*

task cloneGitRepo(type: GitClone) {
        def destination = file("destination_folder")
        uri = "your_git_repo_uri"
        destinationPath = destination
        bare = false
        enabled = !destination.exists() //to clone only once
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...