Estoy en el proceso de actualización de un pequeño manantial de inicio de la aplicación de Java 8 a Java 11. Este proyecto utiliza el paquete javax.smartcardio
. Estoy con la construcción de maven.
El pom.xml
básicamente contiene las siguientes dependencias/plugins:
- primavera-arranque-motor de arranque-padre (2.5.6)
- primavera-arranque-motor de arranque-prueba
- primavera-arranque-motor de arranque-web
- spring-boot-autoconfigure
- pebble-spring-boot-2-starter
- primavera-arranque-motor de arranque-seguridad
- spring-boot-maven-plugin
- maven-recursos-plugin
- maven-asamblea-plugin
- exec-maven-plugin
Después de actualizar todos mis dependencias y el uso de OpenJDK11 el proyecto se compila y se ejecuta correctamente (mvn clean package
). Especialmente las partes mediante las clases de javax.smartcardio
también funcionan bien.
Intellij sin embargo, es de resaltar todos mis importaciones del paquete javax.smartcardio.
en rojo. Al pasar el ratón por encima de él, me dice Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. Intellij sugiere agregar este módulo a través de las opciones del compilador con --add-modules java.smartcardio
. Al hacerlo, Intellij deja de destacar el de las importaciones.
Mi pregunta ahora es, ¿por qué Intellij de relieve las importaciones, a pesar de que todo está compilando y ejecutando igual de bien, sin embargo? Lo que me estoy perdiendo? Es importante agregar que el módulo al compilar? Tal vez maven hace algo en ese sentido para mí ya? Si es así, que parte debo el mirador?
He leído acerca del uso de module-info.java
pero llegó a la conclusión de que el uso de ella para resolver mi problema no sería la mejor solución. Ver también los planes para Java 9 Jigsaw (módulo) de proyectos de Primavera?