Jsem v procesu modernizace malé spring boot aplikaci z Java 8, Java 11. Tento projekt používá balíček javax.smartcardio
. Stavím to s maven.
Na pom.xml
v podstatě obsahuje následující závislosti/plugins:
- jaro-boot-starter-rodič (2.5.6)
- jaro-boot-starter-test
- jaro-boot-starter-web
- jaro-boot-autoconfigure
- pebble-spring-boot-2-starter
- jaro-boot-starter-bezpečnostní
- jaro-boot-maven-plugin
- maven-zdroje-plugin
- maven-montáž-plugin
- exec-maven-plugin
Po upgradu všech mých závislostí a pomocí OpenJDK11 projektu sestavuje a běží v pohodě (mvn clean package
). Zejména v části použití třídy z javax.smartcardio
také práce v pořádku.
Intellij nicméně, je zvýraznění všechny mé dovoz balíček javax.smartcardio.
v červené. Když se vznášející se nad, to mi říká, Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. Intellij navrhuje přidat tento modul pomocí možnosti kompilátoru s --add-modules java.smartcardio
. Když dělá tak, Intellij zastaví zvýraznění dovozu.
Moje otázka je, proč Intellij vrcholem těchto dovozů, i když všechno je sestavování a běží v pohodě, přesto? Co jsem chybí? Je důležité dodat, že modul při kompilaci? Možná maven se něco v tomto ohledu pro mě už? Pokud ano, kterou část mám pozoru?
Četl jsem o použití module-info.java
, ale přišel k závěru, že používat to, aby vyřešení mého problému by bylo nejlepší řešení. Viz také Nějaké plány pro Java 9 Jigsaw (modul) Jarní projekty?