2015-11-28 4 views
-2

Предположим, что я создаю новый проект, основанный на maven, и я хочу использовать весну 4.2.3.RELEASE. Я также хочу использовать весеннюю и весеннюю безопасность и X, Y и Z. Как я могу точно знать, какие точные версии добавить в maven, чтобы избежать конфликтов? Благодаряmaven spring library правильная зависимость

позже редактировать:

это может помочь мне?

Maven "Bill Of Materials" Dependency

Можно случайно смешивать различные версии Spring JAR-файлов при использовании Maven. Например, вы можете обнаружить, что сторонняя библиотека или другой проект Spring тянет транзитивную зависимость от более старой версии. Если вы забудете явно объявить прямую зависимость самостоятельно, могут возникнуть всевозможные неожиданные проблемы.

Чтобы преодолеть такие проблемы, Maven поддерживает концепцию зависимости спецификаций (спецификаций). Вы можете импортировать spring-framework-bom в разделе dependencyManagement, чтобы гарантировать, что все пружинные зависимости (как прямые, так и транзитивные) находятся в одной и той же версии.

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-framework-bom</artifactId> 
      <version>4.2.3.RELEASE</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

Дополнительное преимущество использования спецификации является то, что вам больше не нужно указать атрибут <version>, когда в зависимости от Spring Framework артефактов:

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
    </dependency> 
<dependencies> 
+0

Что будет X, Y и Z? Другие модули Spring? – Tunaki

+0

Это был простой пример. Любой модуль. Как я узнаю, какую версию какого-то модуля мне нужно (из весеннего костюма), который будет работать с 4.2.3.RELEASE? – DiLIVIO

ответ

0

Вы правы, BOM является одним из самых мощные способы борьбы (даже основанные на мэве) зависимости ад.

+0

Еще один вопрос, допустим, у меня есть зависимость org.springframework, и я хочу добавить зависимость весенней безопасности. Как узнать, какую версию весенней безопасности мне нужно, чтобы соответствовать организации. требования? – DiLIVIO

+0

@DiLIVIO в этом случае вам нужно посмотреть справочную документацию весенней безопасности http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#maven-bom или посмотреть на spring-securitys pom, чтобы узнать, какую версию они использовали (редактор Eclipse Pom, вкладка Dependency-Hierarchy помогает много) – Ralph

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