Общие зависимости между несвязанными проектами

1

Мы рассматриваем пользовательский супер POM для поддержания общих зависимостей Spring, Hibernate, Logging, присутствующих в нескольких несвязанных проектах.

Эти проекты имеют разные периоды выпуска, обслуживающие различные бизнес-функции.

Причины, по которым мы хотим сделать это, - это

  1. Обеспечьте общую структуру всей организации для лучшего будущего обслуживания
  2. Убедитесь, что обновления версий ОС не имеют каскадных эффектов для нескольких проектов, требующих обновления каждого проекта.

Мои вопросы:

  • a) Имеет ли смысл этот подход? Что делать, если мне нужно обновить зависимости Project B, не будет ли это требовать изменения для Project A и Project C?

    b) Есть ли способ установить, что плагин Maven-Enforcer запускается каждый раз, когда выполняется сборка проекта?

    c) Какие могут быть другие преимущества наличия общих зависимостей в Super POM?

Спасибо большое заблаговременно.

Теги:
maven
spring
hibernate

2 ответа

1

Имеет смысл использовать корпоративный родительский POM для обеспечения согласованного набора зависимостей. И это очень полезно, как только вы имеете дело с проектами Spring/Hibernate. Но этот подход работает только в том случае, если кто-то отвечает за поддержание супер ПОМ и создание новых версий, когда ему это нужны. А также для поддержки команд в процессе миграции, как только появится новая версия супер ПОМ (лучшее будущее обслуживание). Это возможно, но не тривиально.

Если у вас много проектов, вам, вероятно, понадобится более одного супер POM. В противном случае некоторые из ваших проектов будут зависеть от ненужных зависимостей. Например, у вас могут быть проекты с уровнем пользовательского интерфейса и другие без слоя пользовательского интерфейса.

Подход, который я рекомендую для проектов на основе Spring/Hibernate, заключается в использовании зависимостей Spring Boot. Команда Spring Boot делает работу по обеспечению согласованного набора зависимостей для вас очень гибким способом.

При таком подходе вам не нужен специальный человек для поддержки вашего предприятия POM, и вы выигрываете навыки команды Spring. Ваши команды могут обновляться до нового набора зависимостей Spring Boot, когда требуется техническое обслуживание.

Проверьте эти 2 ссылки для получения подробной информации о том, как использовать зависимости Spring Boot:

  • 0
    Спасибо за понимание.
1

Вообще говоря, это имеет смысл. Но это зависит от вашего фактического использования. Например, я бы не сделал этого для log4j, но зависимости, связанные с безопасностью, могут иметь смысл, поскольку вы не хотите выпускать что-то небезопасное, не так ли?

Разумеется, вы можете связать плагин-исполнитель с некоторой поздней фазой.

Я не вижу много преимуществ в супер POM для несвязанных проектов. Единственная причина, по которой я буду использовать его, чтобы обеспечить безопасность, связанную с такими вещами, как jasypt или spring-security, остается актуальной.

Вы можете использовать шаблон спецификации, описанный в документах maven.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню