Весеннее обновление версии ядра в весенней загрузке родительского стартера 1.5.10.RELEASE

Вот мавенская зависимость у меня

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.10.RELEASE</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
  </dependencies>

то, чего я пытаюсь добиться, это изменить ядро ​​пружины с 4.3.14.RELEASE на 4.3.4.RELEASE. Да, по умолчанию пружинный загрузчик использует пружинное ядро ​​4.3.14, которое может быть расширено до 5.0.7.RELEASE, для этого я попытался исключить пружинное ядро ​​и в том числе с 4.3.4.RELEASE

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.10.RELEASE</version>
            <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
            </exclusions>
                <scope>import</scope>
            <type>pom</type>
        </dependency>
       <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-core</artifactId>
               <version>4.3.4.RELEASE</version>
      </dependency>
</dependencies>

Когда я пытался построить это бросает следующее ожидание

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Unsatisfied dependency expressed through method 'setFilterChainProxySecurityConfigurer' parameter 1; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.convert.support.DefaultConversionService.getSharedInstance()Lorg/springframework/core/convert/ConversionService;

Вручную добавить каждую и каждую зависимость невозможно, потому что приложение использует чертовски много зависимостей, и совместимость с другими зависимостями была бы другой сложной задачей.

Так есть ли обходной путь для этого?

ПРИМЕЧАНИЕ:- пытался работать с spring framework-bom и spring IO, но пока не нашел решения, может я что-то упустил. Примеры тех приветствуются.

1 ответ

Вы не должны делать это на самом деле. Spring Framework > Spring Boot > Spring Cloud > Data Flow - все управляют этими зависимостями по определенной причине. Вы должны позволить Spring обрабатывать зависимости и обновлять ваши реализации по мере необходимости.

https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

Ответы на это более подробно.

Разумно хотеть сделать это, но это следует делать с осторожностью, потому что более новые версии переходных зависимостей могут легко сломать функции, которые полагаются на более старую версию в Spring Boot. Когда вы делаете это и применяете одно из приведенных ниже исправлений, вы отрываетесь от управления зависимостями Spring Boot и говорите: "Эй, я знаю, что я делаю, поверьте мне". К сожалению, иногда вам нужно сделать это для того, чтобы воспользоваться новыми возможностями в сторонних библиотеках. Если вам не нужна новая версия Reactor (или любая другая необходимая вам внешняя транзитивная зависимость), не делайте этого, просто придерживайтесь счастливого пути и позвольте Spring Boot управлять зависимостями.

Другие вопросы по тегам