Что такое протокол репозитория maven?

В последнее время я многому учусь о Maven и очень впечатлен. Где я могу найти информацию об общении, развертывании и извлечении из репозитория так же, как Maven? Это делается через какой-то опубликованный протокол?

Я нашел информацию об OSGI (и OBR), но не могу сказать, нужно ли мне это изучать.

Я хотел бы сделать это в.net (по любой причине). Я не возражаю смотреть через исходный код Java, если кто-то может указать мне на правильный компонент, но гораздо лучше будет указать спецификации протокола.

[EDIT] Я вижу много ответов на HTTP. Я хотел бы уточнить, я не ищу протокол передачи, я ищу протокол API. Например, протокол простого доступа к объектам (SOAP) использует протокол передачи гипертекста для передачи сообщений. Каков протокол доступа для Maven?

Ответ 1

Поскольку khmarbaise уже сказал, что протокол передачи в большинстве случаев является http (s), но есть другие доступные протоколы, например простой доступ к файлам для локальных репозиториев, WebDAV, SCP, SFTP и т.д. Репозиторий maven - это скорее специальный макет каталога. Есть такие серверы, как Nexus или Artifactory, которые предлагают дополнительные функции, такие как проксирование удаленных репозиториев или определенные проверки, такие как аутентификация.

https://maven.apache.org/guides/introduction/introduction-to-repositories.html

Взято из http://wiki.jfrog.org/confluence/display/rtf/repository+layouts Макет репозитория Maven: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

Пример org/eclipse/jetty/jetty-ajp/7.0.2.v20100331/jetty-ajp-7.0.2.v20100331.jar

Ответ 2

Обычным протоколом является http далее для.net, существует уже решение, которое называется nuget, которое уже поддерживает это, и работает с некоторыми менеджерами репозитория, такими как neuxs и artifactory.

Ах... Maven использует собственный протокол. Нет SOAP и т.д. Может быть, посмотрите здесь, поможет немного. И, кроме того, это.

Обновление. Вы можете просто загрузить артефакт из репозитория Maven с помощью wget... который является просто операцией http-get. Чтобы убрать артефакт, это просто http-put... вы можете сделать это за счет завитки.

Ответ 3

Строго говоря, для Maven нет специального протокола доступа. Maven использует простой HTTP для получения артефактов из репозитория. Репозиторий должен иметь специальный макет, то есть структуру URL (которая просто проецируется на обычную структуру каталогов). Вы можете организовать свой собственный репо, просто организовав каталоги специальным способом: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext] без специального программного обеспечения на стороне сервера.

Таким образом, это больше о структуре каталогов, чем о специальном протоколе. Очень простой и эффективный подход.

Конечно, если вы хотите использовать дополнительные сервисы (например, поиск, контроль доступа, статистика и т.д.), Вы должны сделать это сами. Это то, что делает JFrog с продуктом Artifactory.

Ответ 4

Насколько я знаю, на самом деле нет протокола. Репозиторий Maven представляет собой определенную структуру ресурсов, доступную через HTTP (или в локальном каталоге). В Codehaus есть несколько датированных описаний.

"Развертывание" в репозитории означает загрузку файла в зависимости от того, какой вы хотите, пока он доступен для получения из вышеприведенного макета позже. Документация для плагина deploy предоставляет примеры для FTP и SSH, что подразумевает простую загрузку файлов в такую структуру каталогов. Но вы можете также загружать файлы в пользовательскую веб-службу, которая хранит их в базе данных, которая затем должна быть подвержена HTTP. Мейвену все равно не понравится; развертывание артефакта, хранение и доступ к хранилищу развязаны.

Ответ 5

HTTP GET, с этим форматом:

GET /content/repositories/approved-from-central/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom HTTP/1.1
Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip
User-Agent: Apache-Maven/3.3.9 (Java 1.8.0_102; Windows 7 6.1)
Host: localhost
Connection: Keep-Alive

Я зарегистрировал его здесь http://www.javamonamour.org/2017/10/maven-to-repository-protocol.html