2017-01-25 17 views
1

У меня есть проект Maven с ребенком ПОМ, который указывает POM версию родителя как диапазон, какКак определить версию pom родителя?

<version>[1.0.0,1.1.0)</version> 

Как выяснить, какая версия родительского ПОМ фактически используется?

mvn dependency:tree предоставит версии зависимостей, но не от родителя.

mvn help:effective-pom даст полный результат, не раскрывая версию.

+0

Я бы рекомендовал предотвратить использование диапазонов версий ... Вы делаете свою сборку не воспроизводимой ... – khmarbaise

ответ

1

Что версия находится в пределах средств очень четко отобранных в Апач документов для Version Range Specification и я, учитывая, что это то, что мы знаем о из Resolve Ranges Plugin которого Описание гласит:

Попытки разрешить диапазоны версий зависимостей к конкретной версии , используемой в сборке. Например, диапазон версий «[1.0, 1.2]» будет разрешен для конкретной версии, используемой в настоящее время «1.1».

«В настоящее время используется ..» здесь относится к последней версии артефакта в данном диапазоне, доступной в репозиториях, которые они развернули и извлекли из.

  • Для зависимостей, указав диапазон также гарантирует, что при загрузке зависимости от репозиториев Maven будет загрузить все те, которые указаны в диапазоне, но и использовать последние доступные для текущей версии.
    Чтобы подтвердить это на IDE, вы можете перейти к Реализации артефакта, и он приведет вас к эффективному пом, который используется в проекте.
  • Для parent, указав диапазон, не требующий загрузки их артефакта, но я верю даже в текущую реализацию (3.3.9). Maven не может правильно разрешить родительский процесс. Это не приведет меня к реализации родителя, если я укажу диапазон для него. This bug here также подходит к тому же.