Я занимаюсь разработкой сервера, на котором размещается репозиторий Maven, и сталкиваюсь с проблемой, что Maven неправильно разрешает SNAPSHOT-версии, если моментальный снимок не имеет определенного формата.Посмотрев правила для версий, я понял, что квалификатор может быть любой строкой, поэтому я ожидаю, что maven сможет загружать зависимости с любым классификатором.Однако это не соответствует моему опыту.
Репо имеет следующую структуру папок (при условии, что проект maven a.b.c:a.b.c.d:1.0.0-SNAPSHOT
):
<repo-root>
|-a
|-b
|-c
|-a.b.c.d
|-maven-metadata.xml
|-1.0.0-SNAPSHOT
|-a.b.c.d-1.0.0-20190213.120000-1.jar
|-maven-metadata.xml
Если я пытаюсь разрешить abcd-SNAPSHOT, это работает просто отлично.В журнале maven я вижу, что он ищет a/b/c/a.b.c.d/1.0.0-SNAPSHOT/maven-metadata.xml
, а затем загружает правильный JAR-файл.Пока все хорошо.
Но если я изменю квалификатор на что-то другое (например, удаляя -1 в конце), maven не сможет разрешить файл!Вместо поиска
<repo-root>/a/b/c/a.b.c.d/1.0.0-SNAPSHOT/<jar-file>
(что было бы правильно), он смотрит на
<repo-root>/a/b/c/a.b.c.d/1.0.0-20190213.120000/<jar-file>
, что, очевидно, неправильно.Это происходит с каждым классификатором, который не соответствует формату
\d\.\d\.\d-\d{8}.\d{6}-\d+
Почему Maven не может разрешить такие квалификаторы?Формат указан где-то или это просто ошибка maven?