Как скачать банку из артефакта с Gradle в каталог проекта? - PullRequest
0 голосов
/ 15 апреля 2020

Как правильно написать задачу gradle, которая загружает файл .jar (или любой другой) из артефакта в каталог проекта (если файл еще не существует)?

Например, у меня есть проект с путем /root/project с файлом /root/project/build.gradle внутри. Я хочу загрузить generator.jar из артефакта (com / company / project / generator / 1.0) в каталог /root/project, если /root/project/generator.jar отсутствует.

1 Ответ

0 голосов
/ 16 апреля 2020
tasks.register("downloadGeneratorJar") {
    group = 'Download'
    description = 'Downloads generator.jar'

doLast {
    def f = new File('generator.jar')
    if (!f.exists()) {
        URL artifactoryUrl = new URL('myurl')
        HttpURLConnection myURLConnection = (HttpURLConnection)artifactoryUrl.openConnection()

        String userCredentials = gradle.ext.developerUser + ":" + gradle.ext.developerPassword
        String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes()))

        myURLConnection.setRequestProperty ("Authorization", basicAuth)
        InputStream is = myURLConnection.getInputStream()

        new FileOutputStream(f).withCloseable { outputStream ->
            int read
            byte[] bytes = new byte[1024]

            while ((read = is.read(bytes)) != -1) {
                outputStream.write(bytes, 0, read)
            }
        }
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...