He refactorizar todo el repositorio de configuración fuera de mis proyectos en un padre pom que he creado para el propósito específico de tener un único punto de configuración para cosas como repo y gestión de la distribución. Se supone que esta es la mejor práctica como yo la entiendo. En el desplegado de mis padres pom para el nexus server y, a continuación, trató de huir de mi hijo proyectos. Ellos no pueden encontrar mi padre pom . . . este tipo de sentido para mí, ya que, wihtout el padre pom ellos no saben sobre el nexo de repos . . . se parece como un huevo y la gallina tipo de cosas? Me estoy perdiendo algo obvio?

InformationsquelleAutor chad | 2012-01-05

2 Comentarios

  1. 10

    Es cierto que su proyecto necesita saber dónde encontrar los repositorios para descargar sus dependencias. Pero antes de ir a repositorios externos, Maven se compruebe su repositorio local para ver si los artefactos que necesita están ahí. ¿Tu repositorio local contener el padre pom? Si no, usted puede agregar mediante la ejecución de

    mvn install

    sobre el padre pom. El problema puede haber sido causada por la implementación de los padres pom directamente a los Nexus, sin pasar por su local. Usted puede evitar esto en el futuro mediante la implementación de uso de

    mvn deploy

    Este primero instalar el artefacto localmente y, a continuación, instalarla en el repositorio externo (Nexus, en su caso). Más detalles aquí: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

    Si estás en una situación en la que su padre pom es construido y desplegado por los demás, esto no le ayudará. Puede especificar los repositorios en el proyecto del pom, o en su local settings.xml. Un enfoque común es de esperar que todos los desarrolladores para incluir un repositorio de definición en sus locales settings.xml lo que apunta a su Nexus repositorio, se utiliza como un espejo para todos los otros repositorios. A continuación, puede configurar cada repositorio externo que usted necesita en el Nexus, y se deja recuperar las dependencias que necesita para usted. Yo no estoy familiarizado con el Nexus, pero con más detalles en el reflejo se puede encontrar aquí: http://maven.apache.org/guides/mini/guide-mirror-settings.html

    • Gracias, esto ayuda. Tenía la esperanza de que me iba a encontrar una solución que significó un desarrollador puede simplemente retirar el proyecto y construir y que todo iba a funcionar. Este diseño de «imperativa», hace que el settings.xml cosa un poco molesto, pero no está mal 😉 El problema es que el padre pom, en el scm estructura, reside por encima de muchos proyectos. Un desarrollador en un determinado proyecto, no quiere a la caja a la altura de los padres pom . . . tal vez algunos scm engaño está en orden.
    • Seguro, me he encontrado con ese problema yo mismo. Es posible poner a los padres pom en otros lugares, en lugar de en la parte superior de la svn árbol, y definir los sub-módulos en otra pom que está en la parte superior. La relación padre-hijo tiene dos aspectos en Maven; la definición de un padre permite que la herencia de la configuración y definición de los módulos permite que se construye para ser agregada. Los dos no tienen que ir juntos, aunque – usted puede poner el proyecto principal en otros lugares, y el uso de un nuevo pom en la parte superior de su svn árbol, de modo que los padres pueden ser revisadas y construido en su propia.
  2. 4

    Debe mantener los repositorios de las definiciones para cada niño (maven módulo), esta es la mejor práctica en un proceso de construcción: «Hacer de la generación portátil».

    Cualquier desarrollador/sistema debe ser capaz de construir cualquier módulo sin fuente de dependencias de los padres o de otros módulos, sólo con el repositorio de referencia.

Dejar respuesta

Please enter your comment!
Please enter your name here