Обновление зависимостей промежуточного программного обеспечения проекта Maven - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть проект, который использует следующую архитектуру:

MIDDLEWARE

APPLICATION

CUSTOMIZED APPLICATION

Среда сборки использует так называемую maven-overlay. Приложение содержит ссылки на зависимости Middleware, поэтому они устанавливаются в мое хранилище maven при сборке Приложения. Затем, когда я создаю свое Настроенное приложение, я ссылаюсь на Приложение как на зависимость - мои настройки накладываются поверх классов Приложения. Конечным продуктом, который создается, является war-файл, который я развертываю на веб-сервере Tomcat после создания моего пользовательского приложения.

Весь проект становится довольно старым - промежуточное программное обеспечение было разработано еще в 2011/2012 году, поэтому оно использует устаревшие версии ... ну все!

Промежуточное программное обеспечение и приложение используют старую версию Spring (3.1.0) и изначально разрабатывались с использованием JDK 6. Несколько лет назад я перешел на JDK 7. Однако недавно я попытался создать и развернуть свое настраиваемое приложение, используя JDK11 - но столкнулся с разными проблемами, поэтому я вернулся к JDK8; но даже с JDK8 есть проблема. В частности, это связано с выражениями Lamba и некоторыми другими нюансами, с которыми моя текущая версия Spring (3.1.0) не знает, как обращаться. При этом решение состоит в том, чтобы обновить версию Spring, которую использует Middleware, чтобы весь проект мог использовать JDK8 (для TLS1.2, beefer security и т. Д. c.)

Вопрос: как обновить зависимость в моем Middleware? Я посмотрел на исходный код Middleware (поэтому у меня есть доступ к исходному коду при необходимости), и я вижу эту зависимость в основном POM проекта:

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.1.0.RELEASE</version>
  </dependency>

Опять же - мне нужно обновить эта версия 4.0.0.M1, чтобы решить мою проблему, но я не уверен, как это сделать, учитывая среду сборки, которую я описал выше, где APPLICATION включает эту зависимость Middleware (которая, в свою очередь, является той, которая вытягивает та старая весенняя версия).

Спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Итак, длинный рассказ об этом заключается в том, что для того, чтобы повлиять на зависимость, которой управляет промежуточное ПО, мне нужно было обновить промежуточное ПО до соответствующей версии, которая решала бы мою проблему с JDK, но в то же время работала с архитектура моего приложения (например, я не мог просто автоматически брать последнюю версию промежуточного программного обеспечения столько, сколько мне хотелось бы, поэтому я взял максимально возможную версию и решил обе проблемы после МНОГО работы.

Завершено работа с JDK8 + версия промежуточного программного обеспечения, в котором использовалась версия Spring 3.2.3. Эта версия Spring позволяет использовать целевой код JDK 1.7, но собирать с использованием 1.8 JDK.

...