В корне каждого артефакта (относительный путь к корню хранилища [groupId] / [artifactId]) Maven ожидает найти файл maven-metadata.xml. Этот файл используется для определения доступных версий, последней версии и выпущенной версии.
Например, метаданные общего журнала из repo1 перечисляют все доступные версии и сообщают нам, что версия выпуска 1.1.1 по состоянию на 28 ноября 2008 года.
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<versioning>
<release>1.1.1</release>
<versions>
<version>1.0</version>
<version>1.0.1</version>
<version>1.0.2</version>
<version>1.0.3</version>
<version>1.0.4</version>
<version>1.1</version>
<version>1.1.1</version>
</versions>
<lastUpdated>20071128191817</lastUpdated>
</versioning>
</metadata>
Maven загрузит метаданные для каждого удаленного репозитория в ваш локальный репозиторий (с именем maven-metadata- [repo name] .xml), чтобы он мог проверять доступные версии без необходимости каждый раз обращаться к каждому репозиторию. Если вы хотите заставить Maven перезапускать метаданные, вы можете сделать это с помощью ключа -U в командной строке.
Если у вас есть собственный репозиторий, он должен публиковать метаданные такого рода, чтобы Maven мог определить, является ли какая-либо из доступных версий верной. Самый простой способ сделать это - использовать менеджер репозитория, такой как Nexus или Artifactory , который будет управлять метаданными за вас.