Estoy intentando actualizar un proyecto de varios módulos Maven de 15 años a Java 11 y el sistema de módulos que se introdujo en Java 9. Dado que el proyecto está construido con Maven, todas las dependencias son bastante claras. Primero, quiero hacer esto usando los nombres de los módulos automáticos, para no introducir también artefactos actualizados (si no es absolutamente necesario).
Eclipse es bastante útil en este proceso, ya que completa automáticamente los nombres de los módulos en module-info.java. Por ejemplo:
requires dom4j;
Pero si compilo con Maven, obtengo errores sobre que no puede encontrar los módulos Eclipse que acaba de completarse automáticamente allí.
module-info.java:[29,18] module not found: dom4j
Estoy usando el complemento del compilador de Maven 3.7.0 (3.8.0 da una NullPointerException según https://jira.apache.org/jira/browse/MCOMPILER-355 ) Sospecho que Maven está configurando los frascos en el classpath en lugar de en la ruta del módulo, pero la salida de depuración del complemento del compilador no registra eso.
¿Cómo puedo hacer que Maven maneje correctamente esos módulos?
Solución del problema
Me estaba encontrando con el mismo problema. agregando
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
a mi pom me soluciono el problema...
La versión 3.9.0 de Maven parece tener errores y no encontrará el módulo, aunque la dependencia usa un nombre de módulo automático. Bajar a la versión 3.8.1 ayuda.
No hay comentarios:
Publicar un comentario