2017-01-27 4 views
0

Я переношу все в версию с загрузкой весной 1.4.3.RELEASE.Использование весеннего ботинка как исключить модуль из spring-data-releasetrain

До миграции я уже использовал Spring-data-solr версию 2.1.0.RELEASE.

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

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

Я попытался переопределить зависимость с версией в моем pom.xml, без везения.

Нечетным является то, что, когда я проверяю свой путь сборки в соответствии с зависимостями maven, зависимость подходит для Spring-data-solr версии 2.1.0.RELEASE. Так что это не вызывает каких-либо проблем с компиляцией, это происходит только во время выполнения ...

Мне было интересно, могу ли я просто исключить Spring-data-solr и reimport самостоятельно? или есть лучший способ справиться с этим?

ответ

0

Да, вы можете исключить нежелательные версии и переименовать свои собственные. Но это имеет смысл, если ваша версия spring-data-solr совместима с версией Spring-Boot, которую вы используете, во время компиляции, а также во время выполнения.

Самый простой способ сделать это - объявить желаемую версию в разделе dependencyManagement вашего pom. См introduction-to-dependency-mechanism управления зависимостями

имеет приоритет над посредническими зависимостями для переходных зависимостей

Это означает, версия вы объявляете в управлении зависимостями должна переопределить версии от переходных зависимостей.

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

В Maven исключение выглядит следующим образом:

  <dependency> 
      <groupId>org.springframework.security.oauth</groupId> 
      <artifactId>spring-security-oauth2</artifactId> 
      <version>2.0.7.RELEASE</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

В приведенной выше коде я за исключением пружинных бобов, поэтому он не введен в нежелательной версии, требуемой пружинной безопасность-OAuth2. Вам нужно сделать это для всех зависимостей, которые каким-то образом разорвут ваш весенний-data-solr в нежелательной версии.

Ваш лучший друг, делая это

mvn dependency:tree -Dverbose -Dincludes=org.springframework.data:spring-data-solr 

Который точно показывает, что зависимостей проекта должен весенне-данных-Solr и почему они там. См. Maven for details

Итак, вы делаете зависимость mvn: дерево, добавляете исключение и повторяете до тех пор, пока больше не будете зависить от нежелательной версии.

Чем дольше вы добавите зависимость от требуемой версии.

+0

Спасибо за ваш ответ, к счастью, весна выпустила 1.5 в последние пару дней. У него есть правильная версия solr, которая мне нужна. это чистое решение для меня. Я по-прежнему считаю ваш ответ правильным – zalis

Смежные вопросы