Как мне скопировать zip-файл дистрибутива после того, как он был собран с помощью gradle? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть приложение Java, и я настраиваю сборку с использованием Gradle.

Я считаю, что это важная часть моего build.gradle:

apply plugin: 'application'
apply plugin: 'java'

build {
    version = new JsonSlurper().parseText(file('/path/to/metadata.json').text).version
}

distZip {
    archiveName project.name + "-" + project.version + ".zip"
}

Итак, Я получаю версию из внешнего источника, например metadata.json.

Я успешно собираю build/distributions/projectName-version.zip, и я хотел бы иметь возможность создать еще один zip-файл с именем projectName-latest.zip вместе с этим , Насколько это может быть сложно?

Мои знания Gradle далеко не велики, но я потратил слишком много времени, пытаясь найти способ вставить простую команду копирования с двумя параметрами сразу после завершения distZip.

1 Ответ

0 голосов
/ 02 апреля 2020

Для самой копии я рекомендую посмотреть обширную документацию по topi c. Но вкратце, вы будете использовать задачу копирования.

Что касается запуска этой задачи, у вас есть различные варианты, в зависимости от того, чего вы хотите достичь:

  1. Если вы привыкли к вызовите assemble или build, вы, вероятно, хотите, чтобы тот же самый вызов создал этот дополнительный архив. Вы могли бы сделать это, имея задачу копирования dependsOn(distZip) и assemble.dependsOn(myCopyTask)
  2. Если вы привыкли вызывать distZip, то вы могли бы (немного ab) использовать концепцию finalizedBy и иметь distZip.finalizedBy(myCopyTask) , Однако это запустит задачу копирования , даже если distZip завершится неудачно .
  3. . Примените комбинацию из двух пунктов выше, чтобы охватить все ваши базы.

В идеале, я рекомендую перейти с 1, который работает при вызове assemble или build.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...