我最近一直在学习很多关于Maven的事情并且给我留下了非常深刻的印象。我在哪里可以找到有关与Maven相同的方式与存储库进行通信,部署和检索的信息?这是通过一些公布的协议来完成的吗?
我找到了有关OSGI(和OBR)的信息,但无法判断这是否是我应该研究的内容。
我想在.net(无论出于何种原因)这样做。如果有人能指出我正确的组件,我不介意查看java源代码,但更倾向于指向协议规范。
[编辑]我看到很多关于HTTP的答案。我想进一步澄清,我不是在寻找传输协议,我正在寻找API协议。例如,简单对象访问协议(SOAP)使用超文本传输协议来传输消息。什么是Maven的访问协议?
答案 0 :(得分:15)
由于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
答案 1 :(得分:4)
通常的协议是http。对于.net,已经存在一个名为nuget的解决方案,该解决方案已经支持,并且可以与某些存储库管理器一起工作,如neuxs和artifactory。
啊...... Maven使用它自己的协议。没有SOAP等可能看起来here会有所帮助。此外还this。
更新 您只需通过wget ...从Maven存储库下载工件即可...这只是一个http-get操作。要上传一个工件只是一个http-put ...你可以通过curl来做到这一点。
答案 2 :(得分:3)
严格来说,Maven没有特殊的访问协议。 Maven使用普通HTTP从存储库中获取工件。存储库应该有特殊的布局,即URL结构(简单地投影到通常的目录结构)。您可以通过以特殊方式组织目录来组织自己的仓库:[orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]
在服务器端没有任何特殊软件。
因此,它更多地是关于目录结构而不是特殊协议。非常简单和工作的方法。
当然,如果你想要它周围的其他服务(如搜索,访问控制,统计等),你应该自己做。这是JFrog对其Artifactory产品所做的事情。
答案 3 :(得分:2)
据我所知,没有真正的协议。 Maven存储库只是通过HTTP(或在本地目录中)可用的特定资源结构。有一些有点过时的description available at Codehaus。
“部署到”存储库意味着以以任何您希望的方式上传文件,只要以后可以从上面的布局获得。 documentation for the deploy
plugin提供了FTP和SSH的示例,这意味着将简单的文件上载到这样的目录结构中。但您也可以将文件上载到自定义Web服务,该服务将它们存储在数据库中,然后通过HTTP进行适当的公开。 Maven不会真正关心; artefact部署,存储和存储库访问是分离的。
答案 4 :(得分:0)
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