Nexus принимает загрузку, но говорит, что это не удалось
Когда я выполняю mvn release:perform
на родительском POM, сервер отвечает этой ошибкой об одном из дочерних проектов (имена файлов отредактированы):
[ERROR] Не удалось выполнить цель org.apache.maven.plugins: Maven-Deploy-плагин: 2,7: развертывание файл (default-cli) по проекту: Не удалось развернуть артефакты: не удалось передать артефакт из/в репозиторий: Не удалось передать файл. Код возврата: 400, ReasonPhrase: неверный запрос.
Однако все файлы для этого дочернего проекта успешно загружены! Я вижу новый каталог (названный в честь номера версии выпуска) и содержит все файлы .jar,.pom,.md5 и .sha1, которые можно было бы ожидать.
У меня нет доступа к серверу Nexus, но мне интересно, что может вызвать это и как его исправить. Возможно ли, что Maven пытается дважды загрузить этот конкретный дочерний проект? Если да, почему бы Maven сделать это и как я могу остановить его?
ОБНОВЛЕНИЕ: Если у вас такая же проблема, проверьте ответ с наибольшим количеством голосов в этом сообщении. Я запустил mvn help:effective-pom
и обнаружил, что в рассматриваемом проекте на самом деле было два исполнения фазы развертывания. Удаление одной из этих казней решило мою проблему.
Ответы
Ответ 1
Я столкнулся с той же проблемой, выпустив maven многомодульный проект. Ошибка произошла в первый раз, но цель развертывания уже была связана с nexus, а затем создайте соответствующий путь. Предполагая, что "освобождение" репо является однократным, второй раз я его trggered, nexus отказаться от перезаписи пути.
Итак, в таком случае вы можете попросить своего администратора удалить репо... или создать новую версию.
PS: лучше поздно, чем никогда;)