Eu estou no processo de modernização de uma pequena mola de aplicativo de inicialização do Java 8 para Java 11. Este projeto utiliza o pacote javax.smartcardio
. Eu estou construindo com o maven.
O pom.xml
basicamente contém as seguintes dependências/plugins:
- primavera-boot-starter-pai (2.5.6)
- primavera-boot-starter-teste
- primavera-boot-starter-web
- primavera-boot-autoconfigure
- seixo-primavera-boot-2-starter
- primavera-boot-starter-segurança
- primavera-boot-maven-plugin
- o maven-resources-plugin
- maven assembly plugin
- exec-maven-plugin
Depois de actualizar todos os meus dependências e usando OpenJDK11 o projeto compila e roda bem (mvn clean package
). Especialmente as peças utilizando as classes de javax.smartcardio
também funcionam bem.
Intellij no entanto, é destacar todas as minhas importações do pacote javax.smartcardio.
em vermelho. Ao passar o mouse sobre ele, ele me diz Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. Intellij sugere para adicionar este módulo através de opções do compilador com --add-modules java.smartcardio
. Ao fazer isso, o Intellij deixa de destacar as importações.
A minha pergunta agora é, por que o Intellij destacar as importações, apesar de tudo o que está compilando e executando bem, no entanto? O que eu estou ausente? É importante acrescentar que o módulo quando compilar? Talvez o maven faz algo em relação a isso para mim já? Se sim, qual parte eu devo procurar?
Eu li sobre o uso de module-info.java
, mas chegou à conclusão de que usando-o para resolver o meu problema não seria a melhor solução. Veja também planos para o Java 9 Jigsaw (módulo) da Primavera de projetos?