Io sono nel processo di aggiornamento di una piccola sorgente di avvio applicazione Java 8 di Java 11. Questo progetto utilizza il pacchetto javax.smartcardio
. Sto costruendo con maven.
Il pom.xml
contiene essenzialmente le seguenti dipendenze/plugins:
- primavera-boot-starter-genitore (2.5.6)
- primavera-boot-starter-test
- primavera-boot-starter-web
- primavera-boot-autoconfigure
- ghiaia-primavera-avvio-2-starter
- primavera-boot-starter-sicurezza
- primavera-boot-maven-plugin
- maven-risorse-plugin
- maven-assemblea-plugin
- exec-maven-plugin
Dopo l'aggiornamento di tutte le mie dipendenze e l'utilizzo di OpenJDK11 il progetto compila e funziona bene (mvn clean package
). In particolare le parti utilizzando le classi da javax.smartcardio
anche lavorare bene.
Intellij tuttavia, sta mettendo in luce tutti i miei importazioni del pacchetto javax.smartcardio.
in rosso. Quando si passa il mouse su di esso, mi dice Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. Intellij suggerisce di aggiungere questo modulo tramite opzioni del compilatore con --add-modules java.smartcardio
. Quando fa così, Intellij fermate evidenziando le importazioni.
La mia domanda è ora, perché Intellij evidenziare tali importazioni, anche se tutto è la compilazione e l'esecuzione bene comunque? Che cosa mi manca? È importante aggiungere che il modulo durante la compilazione? Forse maven fa qualcosa in proposito, per me già? Se è così, quale parte devo allerta per?
Ho letto sull'utilizzo di module-info.java
ma è giunto alla conclusione che l'uso di esso per risolvere il mio problema potrebbe non essere la soluzione migliore. Vedere anche Eventuali piani di Java 9 Jigsaw (modulo) di Primavera progetti?