Ошибка развертывания maven-файла с 503: не удается найти maven-metadata.xml
Я использую Maven для интеграции нашего проекта с другими, возможно, непопулярным способом и столкнулся с проблемой.
У нас есть проект, который использовался для компиляции с Ant. Скрипт Ant большой и потрясающий, поэтому, когда мы используем Maven для интеграции, решено продолжать компилировать с Ant.
Теперь предположим, что выводом Ant-компиляции является res-1.0-SNAPSHOT.tar.gz. (любое имя файла может быть возможным, но это tar.gz). И я развертываю файл в хранилище снимков, размещенном в nexus, которое называется "снимки".
Я попытался развернуть с помощью этой команды:
mvn deploy:deploy-file \
-DgroupId="com.my-company" \
-DartifactId="res" \
-Dversion="1.0-SNAPSHOT" \
-Dpackaging="tar.gz" \
-Dfile="res-1.0-SNAPSHOT.tar.gz" \
-Durl="http://our-nexus-ip/nexus/content/repositories/snapshots" \
-DrepositoryId="snapshots"
У меня есть простой файл settings.xml в ~/.m2 с настройками прокси и сервера. Однако настройки сервера еще не используются в текущем процессе, неправильные пароли не получают ошибок.
Вывод выглядит так:
[[root@cnbi maven]# ./run.sh
+ mvn deploy:deploy-file -DgroupId=com.my-company -DartifactId=res -Dversion=1.0-SNAPSHOT -Dpackaging=tar.gz -Dfile=res-1.0-SNAPSHOT.tar.gz -Durl=http://135.252.234.142:8081/nexus/content/repositories/snapshots -DrepositoryId=snapshots
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'deploy'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [deploy:deploy-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [deploy:deploy-file]
[INFO] Retrieving previous build number from snapshots
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error retrieving previous build number for artifact 'com.my-company:res:tar.gz': repository metadata for: 'snapshot com.my-company:res:1.0-SNAPSHOT' could not be retrieved from repository: snapshots due to an error: Error transferring file
Server returned HTTP response code: 503 for URL: http://135.252.234.142:8081/nexus/content/repositories/snapshots/com/my-company/res/1.0-SNAPSHOT/maven-metadata.xml
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51 seconds
[INFO] Finished at: Tue Jun 12 08:44:13 CST 2012
[INFO] Final Memory: 7M/209M
[INFO] ------------------------------------------------------------------------
Видите ли, он не может найти maven-metadata.xml. Это наверняка, файл и его папка "com/my-company" вообще не существует в хранилище.
Помимо любого злоупотребления Maven, вы можете найти, мои вопросы:
1) правильно ли я использую Maven? (развертывание tar.gz, используя deploy: deploy-file...)
2) есть неверные параметры?
3) для чего нужен maven-metadata.xml? Это не там, но Maven настаивает на том, чтобы найти его - я думаю, это генерируется, я пропускаю некоторые шаги?
Решение может быть глупым, я действительно не знаком с Maven. К сожалению, это должно быть сделано... Пожалуйста, помогите мне из этого.
Maven версия 2.0.11. Дайте мне знать, если вы хотите узнать больше.
2 ответа
У меня была такая же проблема и была ошибка в нашем нексусе.
Использование maven3 (с теми же настройками settings.xml, pom.xml и .m2 repo) решило нашу проблему, и это проще, чем обновление nexus.
Вы также можете проверить эту ошибку.
Если вы все еще пользуетесь Ant, я бы порекомендовал вам хотя бы рассмотреть возможность добавления Ivy на картинку в качестве менеджера зависимостей. Если я правильно помню, удалось обновить maven-metadata.xml
файлы в хранилище.
Посмотрите на этот пример.