Как узнать, где указана версия снимка для конкретного артефакта? - PullRequest
0 голосов
/ 12 марта 2019

Я использую Maven 3.5.2 и Java 8.

Я работаю над проектом, в котором я получаю следующее при настольной сборке проекта:

Не удалось найти артефакт :: jar: 2.2.0-SNAPSHOT в ...

Если я загляну в наш репозиторий Nexus в интрасети, я увижу версию «2.2.0» этого артефакта, но не 2.2.0-SNAPSHOT. Срок действия наших моментальных снимков истекает через некоторое время, что время от времени вызывает подобные проблемы. Сборка на нашем сервере CI не приводит к сбою, потому что локальное хранилище maven на сервере CI не очищается перед каждой сборкой (я упоминал, что это должно произойти), так что версия этого артефакта находится в этом локальном хранилище maven. , Фактически, у меня была эта версия этого артефакта в локальном репозитории Maven на рабочем столе ранее этим утром, но я, к сожалению, удалил ее, пытаясь отладить эту ошибку, о которой первоначально сообщил мне другой пользователь.

В нашем приложении мы не указываем этот артефакт вообще. Это указано в родительском пом. В этом родительском поме версия не указана.

Я хотел бы выяснить, ГДЕ указывается эта версия «2.2.0-SNAPSHOT» для этого артефакта. Я подумал, что, возможно, "dependency: tree" сделает это, но, к сожалению, этот плагин не распечатает дерево, если не сможет разрешить все зависимости, что и происходит в этом случае.

Я могу просмотреть родительский pom в Eclipse, и на вкладке «Зависимости» он показывает этот артефакт с помощью «(managed: 2.2.0-SNAPSHOT)». У этого родительского пома нет родителя.

Так что, если эта версия "управляемая", как я могу сказать, что управляет ею? Могу ли я использовать mvn в командной строке или графический интерфейс Nexus, чтобы сообщить мне, что указывает эта версия?

Обновление

Я уже знал, что в разделе "dependencyManagement" обычно указываются версии для использования "другими poms", но я уже искал эту спецификацию версии во всем pom (как app, так и parent), и не сделал этого ' не могу найти его.

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

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

так СЕЙЧАС, что я хотел бы знать, есть ли в maven (или в eclipse m2e) что-нибудь, что СКАЖИ МНЕ, что мне пришлось копать, чтобы узнать. У меня такое чувство, что ответ - нет.

1 Ответ

1 голос
/ 12 марта 2019

Версия "управляемого" артефакта определяется <dependencyManagement>. Зависимость может быть в вашем POM или родительском POM. Кроме того, он может содержать элементы с <scope>import</scope>, что означает, что дополнительные записи импортируются из указанного POM.

...