Как применить свойства build.gradle из отдельного плагина к проекту, который применяет этот плагин - PullRequest
0 голосов
/ 18 марта 2020

У меня есть много проектов, которые используют одни и те же зависимости и плагины и так далее. Я подготовил отдельный плагин Gradle, чтобы избежать его использования во всех проектах, но я столкнулся с одной проблемой.

Допустим, все мои проекты используют com.gorylenko.gradle- git -properties

Мой плагин может применить плагин git -properties к проекту, который применяет мой плагин - это хорошо, но я хочу также добавить некоторые свойства для этого плагина в целевой проект, я имею в виду что-то вроде этого:

gitProperties {
  dateFormat = 'yyyy-MM-dd HH:mm:ss'
  dateFormatTimeZone = 'Europe/Warsaw'
  keys = [
          'git.branch',
          'git.commit.id.abbrev',
          'git.commit.time',
          'git.dirty',
          'git.commit.message.short'
  ]
}

Вопрос: Как добавить эти свойства в целевой build.gradle? Возможно, целевой проект может повторно использовать свойства из плагина build.gradle или что-то еще?

1 Ответ

1 голос
/ 20 марта 2020

Когда ваш плагин конфигурирует рассматриваемый проект и применяет com.gorylenko.gradle-git-properties, вам нужно будет настроить расширение, предоставленное базовым плагином.

Учитывая, что этот плагин регистрирует расширение типа GitPropertiesPluginExtension, вам нужно получить к нему доступ, а затем настроить его (код в Java):

// After adding the plugin
GitPropertiesPluginExtension gitExtension = project.getExtensions().getByType(GitPropertiesPluginExtension.class);
gitExtension.keys = // Your list of keys
...