2009-09-17 17 views
6

EDIT: Ok ... así que he deducido que SVN no debería ser usado para esto ... lo cual tiene sentido, supongo (¿por qué? ¿versión de archivos individuales cuando la versión debe ser un contenedor separado?).Crear/Acceder al repositorio de Maven en SVN a través de NetBeans 6.7 * Revised *

Por lo tanto, deberíamos usar un servidor interno para alojar una herramienta de administración de repositorios como Nexus (etc.) y acceder a través de http para desplegar y poner dependencias. Estamos manteniendo nuestros proyectos en SVN ahora. ¿Cuál es el estándar para las implementaciones? Las dependencias entran en Maven. Los proyectos van a SVN. ¿Deberíamos ignorar las carpetas dist y build? ¿De dónde se desplegarán nuestros archivos WAR?

PREGUNTA VIEJO (para la posteridad)

estoy totalmente nuevo a Maven y no saben jack al respecto. Estoy tratando de evaluarlo para ver cómo va a funcionar con nuestro desarrollo de Java.

Me gustaría tener un repositorio Maven en nuestro servidor SVN para que las dependencias puedan ser eliminadas desde allí utilizando NetBeans 6.7. No he podido encontrar cómo hacerlo en muchas búsquedas de google y stackoverflow.

¿Cuáles son las mejores prácticas aquí? Estoy pensando que nos gustaría descargar dependencias usando svn + ssh, pero la mayoría de las cosas en línea parecen apuntar a usar http.

¡Llena mi cerebro de grandes cosas!


Respuesta

5

Recomiendo encarecidamente que no lo haga. Los artefactos de Maven no pertenecen a un servidor SCM. Debería considerar usar un administrador de repositorio como Nexus para almacenar sus artefactos. Vea aquí para una comparación de la principal repository managers.

Habiendo dicho eso. Si está decidido a usar Subversion para alojar sus artefactos. Vea esto question sobre el uso de wagon scm para implementar en un repositorio de Subversion.

Si quiere saber más sobre Maven, consulte Maven: the definitive guide.

Hay un complemento Maven para Netbeans que gestionará las dependencias. This article enumera algunas de las mejores prácticas para Maven y Netbeans.


Actualización basada en su pregunta actualizada. Qué hacer con sus propios jarrones:

Maven tiene un deploy phase que publicará sus artefactos en el depósito remoto. Necesita configurar la sección distributionManagement del pom, y proporcionar appropriate credentials en su settings.xml para permitir el despliegue. Normalmente, debe configurar un repositorio lógico discreto en el servidor para sus propios artefactos para mantenerlos aislados de artefactos de terceros. El Nexus book brinda una buena guía para configurar repositorios en Nexus. En particular, vea la sección Adopting a Repository Manager.

Si ha configurado su proyecto correctamente, ejecute mvn deploy y se ejecutarán todas las fases hasta e incluyendo la fase de implementación, y su artefacto se publicará en el repositorio, disponible para su uso por el resto de su equipo/compañía.

Si necesita restringir el acceso a los repositorios, puede configurar los controles de acceso a su repositorio para que solo los usuarios autenticados puedan acceder a esos artefactos (para Nexus, consulte la sección Managing Security del libro para obtener ayuda).

Vale la pena señalar que puede hacer básicamente las mismas cosas (más o menos) con Artifactory o Archiva como Nexus, he incluido referencias de Nexus porque lo prefiero, y la documentación es realmente buena.

1

No almacenarlos en SVN.

me gustaría hacer dos cosas para asegurarse de que no está recibiendo demasiados dolores de cabeza:

  1. Espejo un repositorio algún lugar cerca de su caja que usted y sus compañeros de trabajo puede compartir. Esto eliminará la descarga adicional y le permitirá solucionar los problemas que puedan surgir (y lo harán) con los archivos pom/jar duplicados para que sus compañeros no tengan que compartir el dolor de cabeza. Hay varios gerentes de repo que ayudan con esto.
  2. Haga su mejor esfuerzo para trabajar con el repositorio de su máquina e introduzca cambios/modificaciones en cualquier archivo pom que pueda hacer en el repositorio compartido local.
Cuestiones relacionadas