2012-04-19 18 views
7

Administro muchos proyectos de maven. La mayoría de ellos se implementan en nuestro repositorio interno de maven. Ahora me gustaría comenzar a lanzar un proyecto a Maven Central. Hasta ahora, he tenido un POM padre que especificó la gestión de distribución de nuestro repositorio interno. No tiene sentido desplegar esta información en Maven Central.Mover un proyecto a Maven Central

¿Cómo debo especificar la gestión de distribución para mis proyectos internos? ¿Debería tener un grupo de padres pom separado interno para proyectos internos?

Sonatype menciona una forma de implementarse directamente en sus repositorios, pero recomiendan usar su propio padre principal (oss-parent). Al mirar proyectos usando mvnrepository.org, no pude encontrar ningún proyecto con oss-parent como padre. ¿La mayoría de los proyectos implementan manualmente sus artefactos en Sonatype? ¿Dónde y cómo los implementan primero?

¡Tantas preguntas! Me sorprende cómo complica esto es ...

Actualización: resulta que algunos de los proyectos que identifiqué hacen usan oss-parent. Simplemente está oculto ya que es el padre de un padre.

+1

La última vez que lo leí, creo que tuvo que levantar una multa con ellos para llevar su jar a Maven Central. Pero tiene razón sobre el repositorio Sonatype OSS, creo que siempre que cumpla ciertos requisitos previos que le permiten implementarlo directamente en su repositorio. Si está poniendo una biblioteca en el dominio público, idealmente debería tener Apache 2 o una licencia similar. ¿Estás listo para abrir tu código al mundo? Si es así, puede tener sentido alojar su código en algún lugar como, Github, SourceForge o Google Code. –

+0

El código está abierto al mundo. Ahora estoy tratando de hacer que los binarios estén disponibles para el mundo. – schmmd

Respuesta

9

Una vez que esté todo listo, puede implementar staged releases y SNAPSHOTs directamente al repositorio de OSS de Sonatype. Las versiones de etapas pueden ser released through Sonatype's Nexus UI.

Para crear una carpeta de repositorio para su aplicación a la que puede implementar, open a ticket with Sonatype on their JIRA junto con una referencia al proyecto de código abierto que desplegará. El proceso es muy sencillo y Sonatype lo ayudará si no proporciona toda la información necesaria.

Mientras que en primer glace no parece que muchos proyectos tengan oss-parent como padre, a menudo lo hacen cuando navega por el árbol POM. Por ejemplo, Google Guava tiene el padre guava-parent, que tiene el padre oss-parent. Una vez que su proyecto tiene oss-parent y el repositorio está configurado, puede implementar SNAPSHOT y lanzamientos fácilmente con mvn deploy o mvn release:prepare release:perform.

Parece abrumador, pero es fácil de entender si solo avanzas por los escalones por primera vez.

6

Lo primero que recomiendo leer es lo siguiente: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide El padre OSS hace bajo el sentido de circunstancia especial en otros no. Eso depende del tipo de proyecto que te gustaría distribuir.

ACTUALIZACIÓN: Ese enlace está muerto ahora. Consulte here para obtener ayuda acerca de la implementación en Sonatype.

ACTUALIZACIÓN: Para Maven central Ver esto: http://central.sonatype.org/

+0

He leído ese documento. ¿Cuidar para elaborar cuándo el padre de OSS tiene sentido y cuándo no?¿Cómo se implementan los proyectos sin un padre OSS a maven central? ¿Cómo se implementan internamente sin distribución manageManagement en su pom.xml? – schmmd

+0

Simplemente cree su propia área de gestión de distribución (http://search.maven.org/#artifactdetails|com.soebes.smpp|smpp|0.3|pom). No se puede implementar internamente sin una gestión de distribución ... lo mejor es tener internamente un gestor de repositorios también ... Si tiene un proyecto que se usa internamente pero se implementará en maven central, este proyecto necesita su propia área de gestión de gestión. usando un padre diferente pero ten cuidado, nada de lo que se vaya a maven central debería depender de cosas que no estén en el centro de maven. – khmarbaise

+2

El documento al que se refiere ha desaparecido mágicamente, sin ningún sucesor claro, parece. –

Cuestiones relacionadas