У нас есть система управления сборкой на основе Ant и Ivy, которая в основном состоит из общего файла ant и набора соглашений, касающихся структуры каталогов.
Одно препятствие, которое я пытаюсь преодолеть, является довольно распространеннымслучай "рекурсивной публикации".Скажем, у нас есть 5 внутренних модулей кода, у которых есть график зависимости, подобный следующему:
- Каждый модуль должен публиковать свои артефакты плюща в нашем внутреннем репо
- Артефакты, еще не очищенные для развертывания для тестирования, должны иметь статус «интеграция»
- Артефакты, развертываемые для тестирования, должны иметь статус «веха» (вручную назначаемый разработчиком)
- Артефакты, проверяемые тестерами, должныиметь статус «релиз»
Допустим, разработчик проверил все 5 модулей локально и внес изменения во все из них.Теперь он хочет продвигать все свои изменения в статусе «веха».Другими словами, что должно произойти в репозитории ivy:
- e-1.0-RC1 публикуется
- d-1.1-RC2 публикуется, ссылаясь на e-1.0-RC1 какзависимость
- c-2.0-RC1 публикуется, ссылаясь на d-1.1-RC2 как зависимость
- b-3.3-RC1 публикуется, ссылаясь на e-1.0-RC1 как зависимость
- Наконец, a-7.1-RC2 публикуется, ссылаясь на c-2.0-RC1 и b-3.3-RC1 как на зависимости.
Я не нашел простого способа сделать это с помощью ivy+ ant (Айви обещает нечто подобное, называемое рекурсивной доставкой, но я не могу найти никаких рабочих примеров).
Здесь звучит многообещающий звук Gradle, так как он, кажется, имеет хорошую поддержку для многопроектных сборок.Я пролистал документы, но не сразу нашел этот случай в качестве примера.Есть ли простой способ добиться этого с помощью gradle?