Maven: Создание взаимозависимых модулей проекта от другого родителя за один раз? - PullRequest
0 голосов
/ 04 сентября 2018

Справочная информация:

У меня есть проект с 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 разных иерархий за один раз?

...