Наш внутренний репозиторий (Artifactory) теперь содержит как стабильные сборки, так и версии SNAPSHOT наших внутренних библиотек.Maven не может получить сборки SNAPSHOT из репозитория
Для стабильных построений никогда не было проблемы с загрузкой чего-либо из репозитория.
Однако, когда я добавляю -SNAPSHOT, Maven утверждает, что не может найти зависимость, хотя она определенно находится в репозитории.
Если я создаю и развертываю зависимость локально (т. Е. В своем локальном репо), все работает нормально.
В основном, это работает:
<dependency>
<groupId>com.example</groupId>
<artifactId>ourlibrary</artifactId>
<version>1.0.0</version>
</dependency>
и это не делает:
<dependency>
<groupId>com.example</groupId>
<artifactId>ourlibrary</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
Даже если обе версии были построены так же, как и развернуто (насколько я могу возможно сказать) правильно в хранилище.
Ошибка:
Missing:
----------
1) com.example:ourlibrary:jar:1.0.1-SNAPSHOT,
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Path to dependency:
1) com.example:product:war:2.0.0-SNAPSHOT
2) com.example:ourlibrary:jar:1.0.1-SNAPSHOT,
Хотя это звучит похоже на this вопрос, решение прибыл в там не относится к моему делу.
Любое понимание этой проблемы было бы весьма полезным.
Редактировать
Запуск с -X (как это было предложено Джон В.) показал следующее:
[DEBUG] Skipping disabled repository central
[DEBUG] ourlibrary: using locally installed snapshot
[DEBUG] Skipping disabled repository central
[DEBUG] Using mirror: http://repo.example.com/repo (id: repo.example.com)
[DEBUG] Artifact not found - using stub model: Unable to download the artifact from any repository
com.example:ourlibrary:pom:1.0.1-SNAPSHOT
from the specified remote repositories:
repo.example.com (http://repo.example.com/repo)
[DEBUG] Using defaults for missing POM com.example:ourlibrary:pom:1.0.1-SNAPSHOT:compile
[DEBUG] com.example:ourlibrary:jar:1.0.1-SNAPSHOT:compile (selected for compile)
Я не декларировал репо в POM, а заданный в настройках Maven, что наш репо является универсальным (*) зеркало.Разве этого не должно быть достаточно (этого вполне достаточно для стабильных построений)? Добавление явного объявления в POM, похоже, решает проблему. – Kris
Я, к сожалению, не слишком много работал с параметрами settings.xml для репозиториев. Я включил их в родительский pom, поэтому любой разработчик, начинающий свежие, не должен беспокоиться о файле settings.xml, если репозиторий должен измениться (что у него на самом деле есть для нас) –
Думаю, я рассудил это. Для стабильных построений Maven по умолчанию будет «центральным», который мои настройки зеркала перенаправляют в наш репозиторий. Для сборки SNAPSHOT по умолчанию нет (поскольку центральная часть не обрабатывает их), а при отсутствии POM, указывающей репо (что * делает * обрабатывает сборки SNAPSHOT), он просто терпит неудачу, даже не пытаясь найти его. – Kris