java - que - ¿Qué es el protocolo de repositorio maven?
maven tutorial (5)
Como khmarbaise ya dijo, el protocolo de transferencia es en la mayoría de los casos http (s), pero hay otros protocolos disponibles, por ejemplo, acceso simple a archivos para repositorios locales, WebDAV, SCP, SFTP, etc. Un repositorio de maven es más un diseño de directorio especial. Hay servidores como Nexus o Artifactory que ofrecen funciones adicionales como servidores remotos remotos o ciertas comprobaciones como la autenticación.
https://maven.apache.org/guides/introduction/introduction-to-repositories.html
Tomado de http://wiki.jfrog.org/confluence/display/rtf/repository+layouts Maven Repository Layout: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]
Ejemplo org/eclipse/jetty/jetty-ajp/7.0.2.v20100331/jetty-ajp-7.0.2.v20100331.jar
He estado aprendiendo mucho sobre Maven últimamente y estoy muy impresionado. ¿Dónde puedo encontrar información sobre la comunicación, el despliegue y la recuperación desde un repositorio de la misma manera que lo hace Maven? ¿Se hace esto a través de algún protocolo publicado?
He encontrado información sobre OSGI (y OBR) pero no puedo saber si esto es lo que debería estar investigando.
Me gustaría hacer esto en .net (por cualquier razón). No me importa mirar a través del código fuente de Java si alguien podría indicarme el componente correcto, pero preferiría que me indicaran las especificaciones del protocolo.
[EDITAR] Veo muchas respuestas con respecto a HTTP. Me gustaría aclarar aún más, no estoy buscando el protocolo de transferencia, estoy buscando el protocolo API. Por ejemplo, el Protocolo simple de acceso a objetos (SOAP) utiliza el Protocolo de transferencia de hipertexto para transferir mensajes. ¿Cuál es el protocolo de acceso para Maven?
El protocolo habitual es http. Además, para .net ya existe una solución que se llama nuget que ya es compatible con eso y funciona con algunos de los gestores de repositorios como neuxs y artifactory.
Ah ... Maven usa su propio protocolo. No SOAP, etc. Puede ser una mirada here ayudará un poco. Y además this .
Actualización Puede simplemente descargar un artefacto de un repositorio de Maven por wget ... que es simplemente una operación http-get. Para mejorar un artefacto es simplemente un http-put ... puede hacer esto por rizo.
Estrictamente, no existe un protocolo de acceso especial para Maven. Maven usa HTTP simple para obtener artefactos del repositorio. El repositorio debe tener un diseño especial, es decir, una estructura de URL (que simplemente se proyecta a la estructura de directorios habitual). Puede organizar su propio repo simplemente organizando directorios de una manera especial: [orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]
sin ningún software especial en el lado del servidor.
Por lo tanto, es más sobre la estructura de directorios que el protocolo especial. Enfoque muy sencillo y de trabajo.
Por supuesto, si desea servicios adicionales a su alrededor (como búsqueda, control de acceso, estadísticas, etc.) debe hacerlo usted mismo. Eso es lo que hace JFrog con su producto Artifactory .
HTTP GET, con este formato:
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
Lo he documentado aquí http://www.javamonamour.org/2017/10/maven-to-repository-protocol.html
Por lo que yo sé, no hay realmente un protocolo. Un repositorio de Maven es solo una estructura de recursos específica disponible a través de HTTP (o en un directorio local). Hay una descripción un tanto anticuada disponible en Codehaus .
"Implementar en" un repositorio significa cargar el archivo de la forma que desee , siempre que esté disponible para obtenerlo más adelante. La documentación para el complemento de deploy
proporciona ejemplos para FTP y SSH, lo que implica una simple carga de archivos en dicha estructura de directorios. Pero también puede subir archivos a un servicio web personalizado que los almacena en una base de datos que luego se expone adecuadamente a través de HTTP. A Maven realmente no le importará; el despliegue de artefactos, el almacenamiento y el acceso al repositorio están desacoplados.