Refactoreé toda la configuración del repositorio de mis diversos proyectos en un pom padre que he creado para el propósito específico de tener un único punto de configuración para cosas como repositorios y administración de distribución. Se supone que esto es una buena práctica, tal como lo entiendo. Inplegué mi pom padre en el servidor nexus y luego intenté ejecutar mis proyectos secundarios. No pueden encontrar mi padre pom. . . este tipo de sentido tiene sentido para mí ya que, sin el padre padre, no conocen el repositorio del nexo. . . parece una especie de huevo y pollo? ¿Me estoy perdiendo algo obvio?¿Cómo mi pom encuentra mi pom padre si los repositorios están configurados en el pom padre?
Respuesta
Es cierto que su proyecto necesita saber dónde encontrar los repositorios para descargar sus dependencias. Pero antes de ir a los repositorios externos, Maven revisará su repositorio local para ver si los artefactos que necesita están ahí. ¿Su repositorio local contiene el pom padre? Si no, puede agregarlo mediante la ejecución de
mvn install
en el pom padres. El problema puede haber sido causado al desplegar el pom principal directamente a Nexus, sin pasar por el local. Esto se puede evitar en el futuro mediante la implementación usando
mvn deploy
Esta será la primera instalación del artefacto a nivel local, y luego desplegarla en el repositorio externo (Nexus, en su caso). Más detalles aquí: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Si se encuentra en una situación en la que su padre pom es creado y desplegado por otros, esto no ayudará. Puede especificar los repositorios en el pom de su proyecto o en su configuración local.xml. Un enfoque común es esperar que todos los desarrolladores incluyan una definición de repositorio en su settings.xml local que apunta a su repositorio Nexus, usándolo como un espejo para todos los demás repositorios. A continuación, puede configurar cada repositorio externo que necesite en Nexus y dejar que recupere las dependencias que necesita para usted. No estoy familiarizado con Nexus, pero más detalles sobre la creación de reflejos se pueden encontrar aquí: http://maven.apache.org/guides/mini/guide-mirror-settings.html
se deben actualizar los repositorios definiciones para cada uno (módulo experto) del niño, este es el principal mejores prácticas en un proceso de compilación: "Hacer la construir portátil ".
Cualquier desarrollador/sistema debería poder construir cualquier módulo sin dependencias de origen con el padre u otros módulos, solo con la referencia del repositorio.
- 1. Maven: POM padre no resoluble
- 2. Maven no puede encontrar el padre POM
- 3. Maven parent pom vs modules pom
- 4. Cómo compartir fragmentos POM entre diferentes POM
- 5. Error de compilación de Hudson: POM padre no resoluble
- 6. ¿Qué representa la etiqueta padre en Maven pom?
- 7. ¿Cómo puedo ubicar el POM que solicita un POM faltante?
- 8. ¿Es posible dividir los archivos maven pom?
- 9. Maven - Parent Pom - Child Herencia
- 10. maven exclude plugin defined in parent pom
- 11. Maven Super POM
- 12. cómo obtener el super pom basedir en un pom módulo de niño?
- 13. Spring Hibernate maven POM
- 14. Leiningen: falta super-pom
- 15. ¿Cómo se editan los archivos Maven pom?
- 16. proyecto maven de varios módulos con el diseño padre pom y svn
- 17. artefacto: instalar empuja el super-pom en lugar del POM Defino
- 18. ¿Cómo puedo desplegar solo el archivo pom en mi repositorio de instantáneas en Maven?
- 19. cómo escapar '&' en los valores de propiedad de maven pom
- 20. Heredar propiedades de parent pom
- 21. Usar datos cifrados en Maven pom
- 22. Dependencias de actualización de Maven en POM
- 23. ¿Cómo se muestra la jerarquía Macul POM?
- 24. Cómo convertir build.xml al archivo maven pom?
- 25. ¿Cómo puedo incluir apache-cxf como una dependencia en mi Maven pom?
- 26. Maven POM-Editor: Falta gráfico de dependencia
- 27. encontrar dependencias pom por nombre de clase
- 28. Maven - Varias compilaciones en una sola pom
- 29. agregando recursos adicionales a un maven pom
- 30. Instalar POM padres sin la construcción de Módulos de niños
Gracias, esto ayuda. Tenía la esperanza de encontrar una solución que significara que un desarrollador simplemente podría verificar el proyecto, y construir y todo funcionaría. Este "diseño imperfecto" hace que el archivo settings.xml sea un poco molesto, pero no está mal;) El problema es que el padre pom, en la estructura scm, reside por encima de muchos proyectos. Un desarrollador en un proyecto específico, no quiere pagar a la altura del padre principal. . . tal vez algún truco de scm esté en orden. – chad
Claro, yo mismo he encontrado ese problema. Es posible poner el padre pom en otro lugar, en lugar de en la parte superior del árbol svn, y definir los submódulos en otro pom que está en la parte superior. La relación padre-hijo tiene dos aspectos en Maven; la definición de un elemento primario permite la herencia de la configuración y la definición de módulos permite agregar construcciones. Sin embargo, los dos no tienen que ir juntos: puedes poner el proyecto padre en otra parte, y usar un nuevo pom en la parte superior de tu árbol svn, para que el padre pueda ser retirado y construido por sí mismo. – Conan