2012-06-14 5 views
3

Не подкованный с администрацией Nexus ....Опубликовать артефакт Nexus через REST API, POST

Откройте консоль, чтобы посмотреть на сетевом вызов при загрузке артефакта «вручную». Хотите пропустить использование Maven или Ivy для загрузки в Nexus. Все запросы мудрые проходят через вызовы ExtJS XHR, за исключением публикации информации об артефактах, которая отображается в Инструментах разработчика Chrome в качестве вызова Документов (при условии, что это представляет собой отправку формы через ExtJS).

Не пробовали симулировать с помощью завитка (не знаю, как многопрофильные формы обрабатываются в завитке, если это возможно), но является ли это единственным способом «публикации» артефактов, помимо традиционного опубликования с Айви или Мейвена? Похоже, что у Nexus есть Java API, но он хочет остаться в мире REST HTTP (надеясь на службу Nexus REST, которая в основном делает многостраничную запись с чем-то вроде HTTPCLIENT от apache).

+1

Будьте предупреждены. Публикация изменений моментальных снимков требует, чтобы клиент обновил обновленный файл метаданных модуля Maven ... Появляется как недокументированная «функция» :-) –

ответ

18

Использование локон:

curl -v \ 
    -F "r=releases" \ 
    -F "g=com.acme.widgets" \ 
    -F "a=widget" \ 
    -F "v=0.1-1" \ 
    -F "p=tar.gz" \ 
    -F "[email protected]/widget-0.1-1.tar.gz" \ 
    -u myuser:mypassword \ 
    http://localhost:8081/nexus/service/local/artifact/maven/content 

Это будет работать с зависимостями, не ява для людей, не используя Maven. Посмотрите мои комментарии по этому вопросу: https://stackoverflow.com/a/19699327/231573.

+0

Это * не * расширяет архив на стороне сервера, что означает, что вы не сможете загружать только некоторые из файлов, которые развернуты на сервере nexus. Во многих случаях это именно то, чего не желают люди, не являющиеся джавами. – sorin

+1

Я получаю «405 метод не разрешен» в качестве статуса ответа. В нем говорится: «HTTP-метод POST не поддерживается этим URL-адресом». Должен ли я устанавливать или активировать что-то, чтобы извлечь выгоду из Rest API. –

+1

Хорошо, я думаю, это потому, что Nexus 3 не поддерживает то, что вы упомянули здесь. –

0

Найдено этот ответ от Sonatype:

В двух словах, это можно POST артефакт непосредственно, но как насчет других файлов, необходимых для модуля Maven? Самое главное быть POM ...

Самый простой способ загрузить файл является использование развертывания-файл плагина:

Upload artifacts to Nexus, without Maven

Есть ли веские причины не с помощью клиента Maven?

+0

Maven POM может быть прикреплен в многострочной загрузке формы. Вернемся к примеру в Curl. Не использовать Maven по разным причинам, но большинство репозиториев основано на maven, поэтому мы тестируем Nexus. Например, Ivy интегрируется с репозиториями Maven. Просто хотел решение без Maven/Ivy и, надеюсь, через REST. –

Смежные вопросы