¿Cuál es el mejor lugar para especificar repositorios necesarios para proyectos maven, pom.xml
o settings.xml
? ¿Cuáles son los pros y los contras de cada ubicación? ¿Cuál es la mejor práctica?¿Cuál es el mejor lugar para especificar repositorios maven, pom.xml o settings.xml?
Me parece que la definición de los repositorios en el POM es mejor para un número de razones:
- Reproducibilidad: Los artefactos dependientes están viniendo de un lugar conocido que se declara explícitamente en el POM. También hay menos oportunidades para que los repositorios mal configurados de un usuario causen problemas.
- Portabilidad: Este POM se construirá en la máquina de cualquier persona con maven instalado. No hay requisitos adicionales en configuraciones de repositorio configuradas por el usuario adicionales.
- Facilidad de uso: es más fácil para los nuevos desarrolladores recuperar y construir el proyecto porque hay menos configuración para configurar.
Tal vez una desventaja es que si la ubicación de los cambios del repositorio en el futuro, servidores proxy necesita ser instalado o parche libera del viejo software necesario liberar la especificación de las nuevas ubicaciones de repositorio (o .m2/settings.xml
siempre puede proporcionar repositorios adicionales como último recurso). Sin embargo, esto parece ser una ramificación necesaria de una buena reproducibilidad y portabilidad en la gestión de liberación en lugar de una estafa.
¿Alguna otra idea?
Si la ubicación del repositorio cambia, simplemente actualice el pom y asegúrese de que todos actualicen su copia local. –
Correcto, pero las versiones anteriores probablemente se hayan publicado como una distribución (p. Ej .: zip, tar.gz). Un buen beneficio de la reproducibilidad es que puede tomar cualquier distribución/versión, aplicar un parche por cualquier motivo y tiene la garantía de obtener la distribución funcional exacta más su parche y nada más. – jnorris
Mi opinión exactamente refleja @jnorris, pero Sonatype ofrece algunos puntos a considerar (¿quizás desactualizados?) Sobre cómo mantener las URL fuera de los archivos POM distribuidos: http://blog.sonatype.com/2009/02/why-putting-repositories-in -your-poms-is-a-bad-idea/ – chrisinmtown