Я получаю сообщение об ошибке при развертывании артефакта в моем собственном репозитории на сервере Nexus: «Не удалось развернуть артефакты: не удалось передать артефакт» «Не удалось передать файл http: /// my_artifact. Код возврата: 400»
У меня Nexus работает с одним настраиваемым репозиторием my_repo со следующей локальной конфигурацией maven:
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
- у пользователя есть права на создание / чтение / запись в my_repo -
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
а затем я выполняю
mvn deploy
и получите ошибку. Любая идея?
maven
deployment
pom.xml
nexus
ацимутальный
источник
источник
Ответы:
Я могу придумать пару вещей:
Проверьте их, и если у вас все еще возникнут проблемы, укажите здесь более подробную информацию.
источник
Просто чтобы создать отдельный ответ. Ответ фактически находится в комментарии к принятому ответу.
Попробуйте изменить версию вашего артефакта, чтобы закончить
-SNAPSHOT
.источник
400 Bad Request будет возвращен, если вы попытаетесь:
источник
Причина проблемы для меня заключалась в том, что -source.jars загружался дважды (с помощью maven-source-plugin), как указано в качестве одной из причин в принятом ответе. Перенаправление на ответ, который я упомянул: плагин выпуска Maven не работает: исходные артефакты развертываются дважды
источник
Сегодня у меня была именно эта проблема, и проблема заключалась в том, что версия, которую я пытался выпустить: perform, уже была в репозитории Nexus.
В моем случае это, вероятно, было из-за отключения сети во время более раннего вызова release: perform. Несмотря на то, что я потерял соединение, похоже, что релиз прошел успешно.
источник
В том редком случае, когда вам нужно повторно развернуть ТАКЖЕ СТАБИЛЬНЫЙ артефакт на Nexus, по умолчанию произойдет сбой. Если затем вы удалите артефакт из Nexus (через веб-интерфейс) с целью его повторного развертывания, развертывание все равно не удастся, поскольку простое удаление, например, jar или pom не очищает другие файлы, все еще лежащие в каталоге. Вам необходимо войти в систему и полностью удалить каталог.
источник
content/vol-{01-43}/chap-{01-47}
Сегодня у меня была такая же проблема с добавлением «Код возврата: 400, ReasonPhrase: неверный запрос». который оказался "артефакт уже развернут с этой версией, если это проблема выпуска" из ответа выше введите описание ссылки здесь
Одно из еще не упомянутых решений - настроить Nexus для повторного развертывания в репозиторий Release. Возможно, это не лучшая практика, потому что это установлено по какой-то причине, вы, тем не менее, можете перейти в «Настройки доступа» на вкладке «Конфигурация» репозиториев Nexus и установить для «Политики развертывания» значение «Разрешить повторное развертывание».
источник
пример: 0.0.1-SNAPSHOT
источник
Убедитесь, что в нексусе (как выпуск) еще не существует (артефакт и версия). В этом случае верните неверный запрос.
источник
Для ошибки 400 проверьте репозиторий «Политика развертывания», обычно это «Отключить повторное развертывание». В большинстве случаев версия вашей библиотеки уже существует, поэтому вы получаете сообщение «Не удалось PUT put ' https: //yoururl/some.jar '. Получен код состояния 400 с сервера: Репозиторий не позволяет обновлять активы:» ваш имя репозитория "
Итак, у вас есть несколько вариантов решения этой проблемы. 1- разрешить повторное развертывание 2- удалить версию из репозитория, которую вы пытаетесь загрузить 3- изменить номер версии
источник
Если какой-либо из приведенных выше ответов сработал, вы можете создать новый артефакт прямо со стороны администратора (снимок экрана NEXUS прилагается ниже).
Login to nexus
UI http: // ВАШ_URL: 8081 / nexus (имя пользователя: пароль администратора по умолчанию: admin123 )Click repositories
с левой стороны, затем щелкните репо, например: нажмите кнопку «Выпуск».artifact Upload
(последняя вкладка).GAV definition
какGAV Param
- Затем введите свой групповой идентификатор, идентификатор артефакта и версию.Теперь вы сможете добавить соответствующий объект в свой проект (снимок экрана ниже)
источник
Это также может произойти, если у вас есть политика именования версии, запрещающая версию #, которую вы пытаетесь развернуть. В моем случае я пытался загрузить версию (для выпуска репозитория),
2.0.1
но позже обнаружил, что наша конфигурация нексуса не допускает ничего, кроме целого числа для выпусков.Я попробовал позже с версией
2
и успешно развернул ее.Сообщение об ошибке определенно не поможет:
Лучшее сообщение могло быть
version 2.0.1 violates naming policy
источник
Идентификатор сервера должен совпадать с идентификатором репозитория maven settings.xml
источник