2011-06-30 12 views
6

Tengo dos proyectos en Eclipse:experto para conectarse a un proyecto local

  1. marco: una biblioteca general que se utiliza en varios proyectos.
  2. cliente: Un proyecto que usa framework.

client es bastante grande, posiblemente más grande que framework en este punto. Estoy usando client como una especie de accesorio de prueba para framework. Quiero hacer algunos cambios en framework y probarlos en client. Actualmente, tengo que hacer una compilación completa de framework, instalarlo en un repositorio maven, y luego reconstruir client.

¿Hay alguna manera de tener solo client apuntando a framework directamente en mi disco local? ¿Alguna otra sugerencia para desarrollar en tal situación (es decir, es una mejor manera)?

Respuesta

6

Puede especificar dependencias desde el disco local utilizando <systemPath> así:

<dependency> 
    <groupId>example.logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.0.0</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/commons-logging.jar</systemPath> 
</dependency> 

No estoy seguro de si se puede apuntar a un directorio que tiene un pom en ella, pero al menos Don tiene que implementarlo en maven.

+1

Sabía que había una manera de hacer esto. Gracias. – User1

+1

Esa no es una buena manera de administrar sus dependencias. Si el marco mencionado ya no es un proyecto maven, conviértalo en uno e instálelo en el repositorio local, y luego en un repositorio remoto si desea trabajar desde varias máquinas. De esa forma resolverás esta dependencia como cualquier otra. –

+0

@DominykasMostauskis - La pregunta no era cuál es la mejor manera de hacerlo. – marchaos

3

El plugin m2eclipse es bastante inteligente sobre las dependencias de Maven. Si tiene la dependencia framework abierta como un proyecto separado en Eclipse, creo que debería usar su código para client en lugar de la versión en su repositorio. Es posible que necesite modificar la configuración de su proyecto si ya está utilizando m2eclipse y no lo hace.

+0

Sí, puede resolver dependencias de proyectos de espacios de trabajo. – gary

21

Al ejecutar mvn install en Framework, se compilará e instalará en su repositorio Maven local (es decir, el repositorio Maven en su disco local). Cuando ejecuta sus pruebas en el Cliente, Maven utilizará automáticamente la versión de Framework en su repositorio local.

+0

Esta parece ser una forma mejor de administrar dependencias locales que systemPath, ya que permite que diferentes paquetes hagan referencia a compilaciones específicas si usa versiones de instantáneas. – Pridkett

Cuestiones relacionadas