gradle: дважды запустить задачу InstallDist с другой конфигурацией jar - PullRequest
0 голосов
/ 12 января 2019

По причинам, связанным с упаковкой, мне нужно в рамках моей сборки дважды выполнить задачу installDist, чтобы сгенерировать два дистрибутива. В каждом из них основной jar будет содержать разные папки ресурсов.

Пример

Давайте предположим, что я хочу сгенерировать:

  • первый дистрибутив, в котором основной jar исключает оба файла f1 и f2
  • тогда дистрибутив, в котором основной jar исключает файл f1 только

Я безуспешно пробовал следующее:

tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]

    jar {
           archiveName = xxx
           exclude "f1"
           exclude "f2"
        }


task osXjar(type: Jar) {
           archiveName = xxx
           exclude "f1"
        }

Он генерирует дважды одинаковый результат, я думаю, что installDist зависит только от jar и игнорирует osXjar

Также, если попытаться запустить только пользовательскую задачу jar osXjar, сгенерированный jar сломан и имеет очень маленький размер, тогда как задача jar дает правильный результат.

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 13 января 2019

Поэтому я выкладываю ответ здесь, если кто-то столкнулся с той же проблемой. Хитрость заключается в том, чтобы включить from sourceSets.main.output в пользовательскую задачу jar. Следовательно, будет работать следующее:

tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]

    jar {
           archiveName = xxx
           exclude "f1"
           exclude "f2"
        }


task osXjar(type: Jar) {
           archiveName = xxx
           from sourceSets.main.output
           exclude "f1"
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...