2013-10-04 3 views
1

У нас есть два репозитория для компонентов Java, из которых нам нужно создать WAR. Сценарии сборки Gradle в этих репозиториях имеют много общих частей. Как мы можем обмениваться этими общими сценариями Gradle между репозиториями:
- Поместите обычные сценарии Gradle в репозиторий;
- У вас есть обычная дистрибуция Gradle, поместите ее в репозиторий?
Любые другие идеи?
Если мы поместим общие скрипты Gradle в репозиторий, нам также нужно будет поместить их в SCM и сохранить их в синхронизации - нам, вероятно, понадобится другой скрипт Gradle для публикации сценариев Gradle в репозитории.Как совместно использовать сценарии Gradle между репозиториями?

ответ

4

Есть два способа, чтобы разделить логику сборки между сборки:

  1. Написать сценарий сборки, содержащей общую логику (например, foo.gradle), поставить его на веб-сервере, и включить его в другой строит с apply from: "http://..." , Мы называем это плагин сценария.
  2. Создайте отдельный проект плагина (и создайте), напишите бинарный плагин (класс, реализующий org.gradle.api.Plugin), опубликуйте его как Jar в репозитории и включите его в другие сборки с apply plugin: ... и buildscript {}.

Ограничение сценариев (но не двоичных) заключается в том, что они не кэшируются. Поэтому сборка, использующая плагины сценариев, будет успешной только в том случае, если она сможет подключиться к веб-серверу, обслуживающему плагины.

Для получения дополнительной информации см. Gradle User Guide и множество образцов в полном распределении Gradle.

Смежные вопросы