Search code examples
javamavenmaven-2

What is the maven repository protocol?


I have been learning a lot about Maven lately and am very impressed. Where can I find information about communicating with, deploying to and retrieving from a repository in the same manner as Maven does? Is this done through some published protocol?

I have found information about OSGI (and OBR) but cannot tell if this is what I should be looking into.

I would like to do this in .net (for whatever reason). I do not mind looking through java source code if someone could point me to the correct component, but would much rather be pointed to the protocol specifications.

[EDIT] I see a lot of answers regarding HTTP. I would like to further clarify, I am not looking for the transfer protocol, I am looking for the API protocol. For example, the Simple Object Access Protocol (SOAP) uses the Hyper Text Transfer Protocol to transfer messages. What is the access protocol for Maven?


Solution

  • As khmarbaise already said the transfer protocol is in most cases http(s), but there are other protocols available, e.g. simple file access for local repositories, WebDAV, SCP, SFTP, and so on. A maven repository is more a special directory layout. There are servers like Nexus or Artifactory that offer additional functionality like proxying remote repositories or certain checks like authentication.

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

    Taken from http://wiki.jfrog.org/confluence/display/rtf/repository+layouts Maven Repository Layout: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

    Example org/eclipse/jetty/jetty-ajp/7.0.2.v20100331/jetty-ajp-7.0.2.v20100331.jar