Küçük bir spring boot uygulamasını Java 8'den Java 11'e yükseltme sürecindeyim. Bu proje paketi kullanır javax.smartcardio
. Maven ile birlikte inşa ediyorum.
Bu pom.xml
temel olarak aşağıdaki bağımlılıkları/eklentileri içerir:
- yay-çizme-marş-ebeveyn (2.5.6)
- yay-önyükleme-marş-testi
- yay-önyükleme-marş-web
- autoconfigure spring-boot-
- çakıl-yay-çizme-2-marş
- spring-boot-starter-güvenlik
- spring-boot-maven-eklentisi
- maven-kaynaklar-eklenti
- maven-montaj-eklenti
- exec-maven-eklenti
Tüm bağımlılıklarımı yükselttikten ve openjdk11'i kullandıktan sonra proje derlenir ve iyi çalışır (mvn clean package
). Özellikle sınıfları kullanan parçalar javax.smartcardio
ayrıca iyi çalışıyor.
Ancak Intellij, paketin tüm ithalatlarımı vurguluyor javax.smartcardio.
kırmızıyla. Üzerinde gezinirken, bana söyler Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. Intellij, bu modülü derleyici seçenekleri aracılığıyla eklemeyi önerir --add-modules java.smartcardio
. Bunu yaparken, Intellij içe aktarmaları vurgulamayı durdurur.
Sorum şu ki, Intellij neden her şey derlenip iyi çalışıyor olsa da bu içe aktarmaları vurguluyor? Neyi kaçırıyorum? Derleme yaparken bu modülü eklemek önemli mi? Belki maven benim için bu konuda bir şeyler yapar? Eğer öyleyse, hangi bölümü aramalıyım?
Kullanma hakkında okudum module-info.java
ancak, sorunumu çözmek için kullanmanın en iyi çözüm olmayacağı sonucuna vardım. Ayrıca bkz. Bahar projelerinin Java 9 Yapbozu (modülü) için herhangi bir plan var mı?