2016-04-19 2 views
1

мульти-модуль родительского POM объявляет следующий импорт BOM:Как найти версию зависимостей Maven декларации, импортируемого из спецификации

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>io.spring.platform</groupId> 
     <artifactId>platform-bom</artifactId> 
     <version>${spring.io.platform.version}</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 

Затем модуль POM объявляющий зависимость гибернации:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
</dependency> 

Как узнать с помощью командной строки Maven или IntelliJ, где определена эффективная версия Hibernate?

Запуск mvn dependency:tree против моих выходов модуля:

... 
[INFO] +- org.hibernate:hibernate-core:jar:4.3.11.Final:compile 
... 

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

  • старта в platform-bom-2.0.3.RELEASE.pom, поиск Hibernate -> ничего
  • не идти к своему родителю spring-boot-starter-parent-1.3.3.RELEASE.pom, поиск Hibernate -> ничего
  • идет к его родительскому spring-boot-dependencies-1.3.3.RELEASE.pom, поиск Hibernate -> наконец ...

Но какое испытание. Конечно, вы могли бы проверить http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions, но разве это не информация, которую Maven может найти самостоятельно?

ответ

0

Согласно How do I show the Maven POM hierarchy? похоже, что это невозможно с помощью простой команды.

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

Малый Совет:., Чтобы получить версию артефакта, который вы используете, вы можно открыть pom.xml в редакторе идей и удерживать Ctrl, в то время как зависает на артефактах, и будет отображаться полное имя его pom с его версией.

1

Есть две вещи. Сначала вывод зависимости: tree выводит конечный результат. Вопрос в том, почему вы этому не верите? А почему бы вам управлять версии себя, если вы используете BOM ...

Помимо этого вы можете использовать:

mvn help:effective-pom 

И если вы ищете немного лучше, чем вы придете к following pom file который содержит определение версии следующим образом:

<hazelcast.version>3.5.5</hazelcast.version> 
<hibernate.version>4.3.11.Final</hibernate.version> 
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version> 
<hikaricp.version>2.4.3</hikaricp.version> 
<hikaricp-java6.version>2.3.13</hikaricp-java6.version> 
<hornetq.version>2.4.7.Final</hornetq.version> 

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

+0

Спасибо, но все это уже в моем Q. Я никогда не говорил, что не верил, что «зависимость: дерево» печатается, и я никогда не говорил, что сам справился с этой версией. Q - это «где определена эффективная версия Hibernate». Кроме того, я перечислил POM, о котором вы также упоминали. Дело в том, что вы заявляете, что «поиск немного лучше» - это ИМО испытание. Я ожидал, что Maven сможет сразу сказать мне, где версия определена (т. Е. В POM). –

+0

Звучит неплохо для maven-dependency-plugin или любого другого плагина, который может решить такую ​​проблему ... – khmarbaise

1

В Eclipse при просмотре pom в формате XML (то есть на вкладке «pom.xml», а не на вкладке «Обзор») просто наведите курсор мыши на имя артефакта, и появится всплывающее окно с эффективным версию и место, где она определена.

enter image description here

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

  • Нет связанных вопросов^_^