Uso Apache Maven para administrar mis libs de Java (jar) y algunos proyectos que usan libs. Para mayor conveniencia, uso mvn eclipse:eclipse
para generar archivos de proyecto Eclipse que se pueden importar al espacio de trabajo de Eclipse para su edición.¿Cómo decirle a Maven que incluya la dependencia jar, no el directorio fuente del subproyecto en Eclipse?
Surgen problemas cuando edito el proyecto principal y los proyectos de Java lib en el mismo espacio de trabajo de Eclipse. Es decir, mvn eclipse:eclipse
incluye ruta src dependencia en el archivo .classpath
, no la dependencia jar
como se esperaba.
Supongo que tengo un proyecto de lib de Jave llamado mylib
. El archivo jar correspondiente mylib.jar
se ha implementado en un repositorio privado de Maven mantenido por mí. Para utilizar mylib.jar en el proyecto principal, se incluye la siguiente dependencia en pom.xml
.
<!-- pom.xml for the main project -->
<dependency>
<groupId>namespace.my</groupId>
<artifactId>mylib</artifactId>
<version>[1.0,)</version>
</dependency>
mvn compile
y mvn test
obra completa, en la que mylib.jar
se descarga automáticamente de mi repo. Sin embargo, al intentar mvn eclipse:eclipse
, encuentro que el archivo generado .classpath
no incluye la dependencia mylib.jar
como se esperaba. En cambio, incluye el directorio de archivos fuente para mylib de la siguiente manera.
<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>
Parece que Maven lee los metadatos del Eclipse y encuentra mibiblioteca y los principales coexits del proyecto en el mismo espacio de trabajo. Por lo tanto, maven incluye la fuente de mi bien. Maldita sea. ¿Cómo puedo decirle a maven que ignore el origen del proyecto local y solo incluya el archivo jar?
¿Por qué no ¿Usas el plugin m2e Eclipse? –
Porque me siento cómodo escribiendo comandos en la consola: la compilación, la prueba y el empaquetado se realizan en un solo comando. Además, los segmentos de configuración útiles en pom.xml pueden reutilizarse fácilmente en otros proyectos. Eclipse es bueno, pero demasiados menús y numerosos complementos me resultan complicados. –
Los dos no son necesariamente mutuamente excluyentes, aunque tendrías que renunciar al plugin de Maven Eclipse para usar m2e. Encuentro Eclipse conveniente para la depuración y m2e garantiza que el proceso de construcción es lo más similar posible dentro y fuera de Eclipse. –