es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intellij: El paquete ‘javax.smartcardio’ está declarado en el módulo ‘java.smartcardio’, que no está en el gráfico de módulos, pero el proyecto se compila correctamente.

Estoy en el proceso de actualizar una pequeña aplicación spring boot de Java 8 a Java 11. Este proyecto utiliza el paquete javax.smartcardio. Lo estoy construyendo con maven.

El pom.xml básicamente contiene las siguientes dependencias/plugins:
– spring-boot-starter-parent (2.5.6)
– spring-boot-starter-test
– spring-boot-starter-web
– spring-boot-autoconfigure
– pebble-spring-boot-2-starter
– spring-boot-starter-security
– spring-boot-maven-plugin
– maven-resources-plugin
– maven-assembly-plugin
– exec-maven-plugin

Después de actualizar todas mis dependencias y usar OpenJDK11, el proyecto se compila y se ejecuta bien (mvn clean package). Especialmente las partes que utilizan las clases de javax.smartcardio también funcionan bien.

Sin embargo, Intellij está resaltando todas mis importaciones del paquete javax.smartcardio en rojo. Cuando me acerco a él, me dice Intellij: El paquete ‘javax.smartcardio’ está declarado en el módulo ‘java.smartcardio’, que no está en el gráfico del módulo. Intellij sugiere agregar este módulo a través de opciones del compilador con –add-modules java.smartcardio. Al hacerlo, Intellij deja de resaltar las importaciones.

Mi pregunta ahora es, ¿por qué IntelliJ resalta esas importaciones, incluso cuando todo se compila y se ejecuta perfectamente de todos modos? ¿Qué me falta? ¿Es importante agregar ese módulo al compilar? ¿Tal vez maven hace algo al respecto por mí ya? Si es así, ¿a qué parte debo estar atento?

He leído sobre el uso de module-info.java, pero llegué a la conclusión de que usarlo para resolver mi problema no sería la mejor solución. Ver también https://stackoverflow.com/questions/43685081/any-plans-for-java-9-jigsaw-module-of-spring-projects

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Respuesta
    Parece que Intellij está resaltando los importes del paquete javax.smartcardio en rojo debido a que no está incluido en el gráfico del módulo. Para resolver este problema, puedes agregar el módulo a través de las opciones del compilador con --add-modules java.smartcardio. Esto debería evitar que Intellij resalte los importes.

    No es necesario agregar el módulo al compilar, ya que el proyecto ya se está compilando y ejecutando correctamente. Maven puede estar haciendo algo al respecto por ti, así que es importante estar atento a cualquier parte relacionada con esto.

    No se recomienda utilizar module-info.java para resolver este problema, ya que puede no ser la mejor solución.

Comments are closed.