java - que - maven tutorial
Agregar proyectos de eclipse de referencia a dependencias de maven (7)
En este momento, tengo dos proyectos de Eclipse: ambos usan Maven 2 para todas sus bondades de dependencia de jar.
Dentro del eclipse, tengo el proyecto Foo incluido en la ruta de compilación del proyecto Bar, por lo que puedo usar las clases de Foo desde Project Bar. Esto funciona muy bien en terrenos de eclipse, pero cuando intento:
mvn compile
dentro del directorio de Bar, falla porque Maven no conoce la relación proyecto-proyecto en la ruta de compilación de Eclipse.
Si estuviera usando hormiga, solo la usaría para hacer algo tonto como copiar foo.jar en el classpath de Project Bar, pero hasta donde puedo decir, las cosas se hacen mucho menos hackishly en Maven-land.
Me pregunto si hay una solución estándar para este tipo de problema, parece que sería bastante común, y me falta algo básico sobre cómo funciona Maven.
Creo que la mejor manera de manejarlo es hacer que Bar sea un proyecto de Maven como Foo, y luego mvn install
para que esté disponible en su repositorio local de Maven. El inconveniente es que debe instalar ese proyecto cada vez que desea que Maven vea los cambios que realiza en Bar.
Mira el plugin m2eclipse . Actualizará automática y dinámicamente la ruta de compilación del proyecto cuando cambie el pom. No hay necesidad de ejecutar mvn eclipse:eclipse
.
El complemento también detectará si hay alguna dependencia en el mismo espacio de trabajo y agregará ese proyecto a la ruta de compilación.
Idealmente, si usa m2eclipse, nunca cambiaría la ruta de compilación del proyecto manualmente. Siempre editaría pom.xml, que es la forma correcta de hacerlo.
Como se ha indicado anteriormente, Maven no sabrá sobre la ruta de compilación del proyecto Eclipse. mvn install
agregar todas las dependencias al pom y debe asegurarse de que todas las dependencias se mvn install
e instalan primero ejecutando mvn install
.
Si desea construir ambos proyectos con un solo comando, entonces puede encontrar la agregación de proyectos interesante.
No es una respuesta completa:
El pom de Bar necesita incluir Foo para poder usar maven para compilarlo.
También me interesa esta pregunta, pero desde la perspectiva de cómo lograr que eclipse reconozca una dependencia añadida por un experto es en realidad otro proyecto en el mismo espacio de trabajo. Actualmente mvn eclipse:eclipse
ruta de compilación después de realizar mvn eclipse:eclipse
Tal vez está haciendo referencia al otro proyecto a través de eclipse configure-> build path only. Esto funciona siempre que use Eclipse para construir su proyecto.
Intenta ejecutar primero mvn install en la barra de proyectos (para poner Bar en tu repositorio de maven), y luego agrega la dependencia a Foo''s pom.xml.
¡Eso debería funcionar!.
Es posible que desee probar un enfoque alternativo, donde tenga un proyecto principal de maven y proyecto de dos hijos. digamos:
Parent (pom.xml tiene referencias a ambos proyectos / módulos) -> A (depende de B) -> B
luego cuando ejecutas mvn eclipse: eclipse desde la raíz de Parent, maven generará proyectos de eclipse para A y B, y tendrá B como un proyecto requerido en el classpath de A.
Puede ejecutar mvn install desde la raíz de Parent para obtener la compilación de ambos proyectos.
Para completar su configuración, deberá importar A y B a Eclipse, asegurándose de no marcar "Copiar proyectos en el área de trabajo".
Si hace referencia a un proyecto local, pero su versión ha sido actualizada (generalmente aumentada), tal vez solo pueda encontrarse en su repositorio local y usted tiene que actualizar la versión (probablemente fija) de su POM (s).
Tenemos un "proyecto común" (utilizado en todas partes) que no necesariamente necesita ser versionado ya que lo etiquetamos mediante control de fuente. entonces tampoco
- manteniéndolo en una versión fija o
- haciendo referencia a ella con la versión especial
LATEST
son buenas soluciones para estar siempre en el lado seguro.
Solo necesitaba hacer esto y lo necesitaba construir con el comando mvn clean install externo. Esta es la forma correcta de configurar esto en Eclipse. (Con el proyecto B como una dependencia de A)
- Abra el pom.xml para el proyecto A en Eclipse.
- Ve a la pestaña
Dependencies
. - Haga clic en el botón
Add...
en el medio de la página (para el cuadro Dependencias del lado izquierdo) - En la ventana emergente, debe haber un recuadro debajo de una línea con el texto arriba que dice
Enter groupId, artifactId or sha1 prefix or pattern (*):
Ingrese el ID del artefacto para el proyecto B en este recuadro. - Haga doble clic en el jar que desea agregar como una dependencia de este proyecto
- Es posible que deba actualizar el proyecto después.
- Haga clic derecho en el proyecto A en su explorador de paquetes
- Maven -> Actualizar proyecto ...
- Luego presiona OK en la ventana emergente.