我正在將一個小型 Spring Boot 應用程式從 Java 8 升級到 Java 11。該專案使用包javax.smartcardio
. 我正在用 Maven 構建它。
該pom.xml
基本上包含以下依賴性/插件:
- spring-boot-starter-parent (2.5.6)
- spring-boot-starter-test
- spring-boot-starter-web
- 彈簧引導自動配置
- Pebble-spring-boot-2-starter
- spring-boot-starter-security
- spring-boot-maven-plugin
- Maven資源插件
- Maven 程式集插件
- exec-maven-插件
升級我的所有依賴項并使用 OpenJDK11 后,專案編譯并運行良好 ( mvn clean package
)。特別是使用類的部分javax.smartcardio
也可以正常作業。
然而,Intellijjavax.smartcardio.
以紅色突出顯示了我所有的包匯入。當懸停在它上面時,它告訴我Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
。Intellij 建議通過帶有--add-modules java.smartcardio
. 這樣做時,Intellij 將停止突出顯示匯入。
我現在的問題是,為什么 Intellij 突出顯示這些匯入,即使一切都編譯和運行得很好?我錯過了什么?編譯時添加該模塊很重要嗎?也許 maven 已經在這方面為我做了一些事情?如果是這樣,我應該注意哪個部分?
我讀過 using module-info.java
,但得出的結論是,用它來解決我的問題不是最好的解決方案。另請參閱Spring 專案的 Java 9 Jigsaw(模塊)的任何計劃?
uj5u.com熱心網友回復:
這是一個已知問題,請投票支持IDEA-259485非標準模塊不是非模塊化模塊中類路徑的一部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/368612.html
上一篇:如何使類似插件的架構可運行?