Справочная информация:
У меня есть проект с 3 основными модулями и проект Aggregater POM, который содержит все эти модули.
И этот проект Aggregater также имеет родительский POM, который находится за пределами этого хранилища.
-Super Aggregater(Packaging->POM, Different workspace)
-Aggregater(Packaging->POM, Same workspace)
- API(Same workspace)
- Implementation(Same workspace)
- Utility(Same workspace)
Зависимости от Super Aggregater используются во всех трех зависимых модулях (API, Impl, Util), а проект Utility используется как в проектах API, так и в Impl в качестве зависимости. Пока все хорошо.
Текущее состояние:
Теперь, Утилита является дочерней по отношению к Агрегатору только для того, чтобы наследовать зависимости, исходящие от Суперагрегатора (что неправильно).
Эта структура создает ненужную зависимость между агрегатором и утилитой, а также предотвращает использование утилиты вне проекта агрегатора.
Итак, я перестроил это следующим образом.
-Super Aggregater(Packaging->POM, Different Workspace)
-Aggregater(Packaging->POM, Same workspace)
- API(Same workspace)
- Implementation(Same workspace)
-Super Aggregater(Packaging->POM, Different Workspace)
- Utility(Same workspace as aggregator)
С этой структурой я могу использовать утилиту вне агрегатора в будущем при необходимости.
Проблема:
Хотя служебный проект имеет возможность выйти за пределы рабочего пространства агрегатора, в настоящее время он все еще находится в том же рабочем пространстве, так что мне не нужно строить 2 проекта отдельно.
И в этом проблема. У меня есть 3 модуля в моей рабочей области с двумя разными родителями, которые должны быть встроены за один раз.
Порядок сборки агрегатора следующий:
-> Utility
-> API (Uses Utility)
-> Implementation (Uses Utility)
При сборке сначала создается Utility, но я не могу использовать встроенную версию в API & Impl (работает, если утилита находится в Aggregater)
Может кто-нибудь сообщить мне, возможно ли собрать модули из 2 разных иерархий за один раз?