Maven: Как разделить существующий проект Maven на разные проекты? - PullRequest
0 голосов
/ 14 февраля 2020

Итак, у меня есть этот большой весенний загрузочный проект с сотнями API и соответствующими моделями. Меня попросили разделить его на три разных модуля. Витрина, система управления заказами и утилиты. В соответствии с моим базовым c планом я сортировал, фильтровал и перемещал API-интерфейсы Storefront и OMS в соответствующие проекты. Я переместил все классы модели в утилиты, создал пакет, добавил этот пакет в локальный репозиторий и включил его как зависимости Storefront и OMS. Далее я экспортировал эти два проекта в качестве исполняемой фляги с копированием необходимых библиотек в подпапку рядом с сгенерированной флягой. И я сделал это, потому что в подпапке будет пакет для утилит, и если в будущем мне придется что-то обновить из утилит, я мог бы просто заменить этот пакет и перезапустить сервер.

Все работает нормально, проблема с размером окончательного пакета. Размер банки оригинального проекта составляет 175 МБ. Все три проекта имеют одинаковые файлы .pom. Таким образом, все три проекта экспортируются в размер, который составляет почти 175 МБ. И, как я уже сказал, я включил пакет для утилит в двух других проектах. Таким образом, размер подпапки для Storefront и OMS составил около 350 МБ.

Наконец, мой вопрос: есть ли способ разделить проект maven на 3 различных подпроекта, которые можно создавать и развертывать независимо и Есть ли какой-нибудь способ, которым эти 3 проекта совместно используют набор библиотек, которые могут храниться удаленно и к которым они могут обращаться независимо друг от друга, чтобы уменьшить размер окончательного работающего фляги?

1 Ответ

1 голос
/ 14 февраля 2020

Я думаю, что есть более глубокие проблемы. Если ваш артефакт имеет 175 МБ и большинство из них являются зависимостями, то у вас очень и очень много зависимостей.

Итак, прежде всего, вы должны спросить себя, действительно ли все эти зависимости необходимы. Нередко люди добавляют зависимость просто для использования одного простого класса из этой зависимости. И эта зависимость, чем имеет переходное бремя. 175 МБ действительно требует более глубокого анализа этого факта.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...