Создание Jar и Tar с использованием Gradle 5.x - PullRequest
0 голосов
/ 02 июля 2019

Я пишу новый скрипт Gradle для устаревшего проекта, который переносится на него.

Первоначально я написал скрипт с использованием Gradle 4.x DSL, но я решил обновить его до 5.x для лучшей проверки будущего.

Одна из моих задач была поручена на создание jar путем задания имени и расширения jar и создания нового файла в папке корневого каталога моих проектов.

КогдаЯ перенес сценарий в Gradle 5.X. Следующие свойства устарели:

baseName, extension, archiveName и destinationDir.

Я попытался настроить их в соответствии с новым соглашением, но явозникли проблемы с этими свойствами, которые невозможно найти:

Could not set unknown property 'archiveDestinationDirectory' for task ':jar' of type org.gradle.api.tasks.bundling.Jar."

Я попытался найти решение в Интернете, но мне еще не удалось найти ни подходящий способ сделать это, ни пример, который использует Gradle 5.x

Теперь второй вопрос вращается вокруг идеи создания смолы.Снова я не нашел хорошего примера, чтобы показать это.Пока что мой скрипт делает это, что создает tar, но без сохранения правильной файловой иерархии:

task createTar(type: Tar) {
    archiveBaseName = 'info_tar'
    archiveExtension = 'gz'
    compression = Compression.GZIP
    from ('..') {
        include('bin/**')
        include('sounds/**')
        include('classes/**')
    }
    archiveFileName = archiveBaseName.get() + '.' + archiveExtension.get()
    //cleanup of temporary directories
    delete BIN_TARGET, SOUNDS_TARGET, CLASSES_TARGET
}

Моя цель - создать tar, содержащий папки bin, звуки, классы.Кто-нибудь может помочь в достижении этого?

1 Ответ

2 голосов
/ 02 июля 2019
  • baseName: Документация показывает, что она устарела в пользу archiveBaseName
  • расширение: Документация показывает, что она устарела в пользу archiveExtension
  • имя_архива: Документация показывает, что она устарела в пользу archiveFileName
  • destinationDir : документация показывает, что она устарела в пользуиз destinationDirectory

В банке нет объекта archiveDestinationDirectory. Документация показывает, что правильное свойство называется destinationDirectory.

Чтобы включить сами каталоги в tar, вам нужно использовать вместо того, что вы используете:

from('..') {
  include('bin/**')
  include('sounds/**')
  include('classes/**')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...