Плагин Gradle: условно копировать ресурсы - PullRequest
0 голосов
/ 16 апреля 2020

Я упаковываю свое приложение java с помощью плагина Gradle's Distribution. Я хотел сделать 2 дистрибутива, один из которых не содержит JRE, а другой - JRE с приложением. Я настроил задачу copyJre и хотел, чтобы плагин Distributions включал папку (jre-8 в приведенном ниже примере) только тогда, когда задача copyJre находится в графе задач. Вот моя попытка, которая не работает.

distributions {
  main {
    contents {

      from('/') {
        include 'tools/**'
      }      

      // my attempt to conditionally copy
      // jre-8 directory only when tasks graph contains
      // a task named 'copyJre' 
      if (tasks.findByName('copyJre') != null) {
        from('../../jre-dist/') {
          include 'jre-8/**'
        }
      }

    }
  }
}

Вероятно, в целом должен быть лучший подход. Это похоже на кладжи.

1 Ответ

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

С точки зрения Gradle, вы лучше выражаете то, что вам нужно, наоборот:

  • Создайте другой дистрибутив, который будет включать JRE, возможно, извлекая общую часть копии spe c.
  • И если вам действительно нужен только один выход, сделайте его заменой дистрибутива по умолчанию после его сборки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...