Pregunta

Tengo un proyecto java que se compone de 3 subproyectos que generan un artefacto .jar cada uno (y tienen subdependencias entre ellos). Además, hay un proyecto web que depende de los primeros 3 proyectos y genera un archivo war. El archivo de guerra es mi artefacto final, es decir, lo que envío a mis clientes.

Además, tengo un módulo principal que abarca todos los demás proyectos:

<modules>
    <module>../core</module>
    <module>../commons</module>
    <module>../api</module>
    <module>../web</module>
</modules>

Genero archivos de eclipse (mvn eclipse: eclipse) y trabajo con eclipse. El problema es que si modifico uno de los proyectos no web, debo instalarlo manualmente antes de implementar el proyecto web en mi contenedor web. ¿Cómo puedo hacer que el proyecto web dependa directamente del código fuente de los demás y no de la versión instalada en el repositorio?

¿Fue útil?

Solución

En las propiedades de la aplicación web (haga clic con el botón derecho en el proyecto en el Explorador de paquetes, luego " propiedades "), agregue los tres módulos (core, commons y api) en la sección " Dependencias del módulo J2EE " (los otros módulos deben abrirse en el espacio de trabajo de Eclipse).

Otros consejos

¿Desea agregar una dependencia en los archivos jar de origen implementados en el repositorio?

Si es así, puede hacerlo agregando el clasificador sources a la dependencia. Consulte esta respuesta para más detalles.

Si no, ¿puedes aclarar más?

Creo que tu problema es que solo estás construyendo el proyecto de guerra. Si lo está construyendo desde la línea de comando, entonces lo que tiene que construir es el módulo principal. " paquete mvn " en el directorio que contiene el módulo padre debería ser suficiente. Por supuesto, esto significa que tienes que compilar todos los paquetes cada vez, pero esa es la forma en que Maven funciona.

La dependencia: el objetivo del árbol por sí mismo buscará las cosas en el repositorio en lugar de en el reactor. Puede solucionar este problema con la instalación de mvn, como se sugirió anteriormente, o haciendo algo menos oneroso que invoque el reactor, como

  

mvn compile dependency: tree

Funciona para mí.

Edit: D'oh! Publicado esta respuesta a la pregunta incorrecta. Estaba destinado a responder this

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top