idea報錯:java程序包com.github.xiaoymin.knife4j.spring.annotations不存在問題解決
問題描述
在瑞吉外賣中添加swagger的相關配置,啟動項目后報錯:


分析與解決
java: 程序包com.github.xiaoymin.knife4j.spring.annotations不存在,首先思路是查看本地倉庫是否有對應的jar包 或者 是否導入了相關依賴。
排查過程如下:

根據上圖,發(fā)現本地倉庫已有對應的jar包,而且我已正確導入依賴,那么問題出在哪?
經過一番搜索,類似的問題給我提供了思路:
選中jar包所在依賴包,右鍵選擇 Open library settings

在彈出的對話框中,復制依賴包的名字

打開項目的iml文件(reggie_take_out.iml),添加如下配置:
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:3.0.2" level="project" />
將其余報錯按如上三步進行處理,在reggie_take_out.iml中添加配置:

<orderEntry type="library" name="Maven: io.springfox:springfox-core:3.0.0" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spi:3.0.0" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:3.0.0" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:3.0.0" level="project" />
一頓操作后,出現新的問題:

還是采用上面的思路進行排查,此次點擊藍色鏈接并沒有跳轉到導包語句,而是直接定位到具體的代碼,所以直接在左側查找org.springframework.plugin.core依賴包,發(fā)現Plugin的類文件是存在的,只不過編譯器找不到而已。

解決方案依然是在reggie_take_out.iml中添加相關配置:
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE" level="project" />
重啟項目,啟動成功。
拓展與總結
為了以后能快速解決類似問題,有必要了解一下iml文件。chatgpt給出如下回答:
在 IntelliJ IDEA 中,后綴為 iml 的文件是指 Module File,即模塊文件。每個 IDEA 項目都由一個或多個模塊組成,每個模塊都有一個相應的 iml 文件。iml 文件包含有關模塊的信息,例如模塊的名稱、源代碼和資源文件的目錄位置、依賴項、輸出路徑等。一個項目的 iml 文件可以在項目文件夾下找到。
iml 文件的作用是將模塊與項目相關聯,使得 IDEA 能夠正確地加載和處理模塊的所有信息和依賴項。iml 文件還可以保存一些模塊特定的設置,例如代碼風格、編譯選項、測試配置等。由于 iml 文件是與模塊相關聯的,因此每個模塊都必須有一個相應的 iml 文件,否則該模塊將無法在 IDEA 中正確加載和處理。
出現此類問題的原因是idea沒有正確地加載依賴項。正常情況下,在pom.xml文件中導入依賴后,maven會自動下載依賴包到本地倉庫,如果發(fā)現無法使用,可以在iml文件中添加相關的依賴項。
到此這篇關于idea報錯:java程序包com.github.xiaoymin.knife4j.spring.annotations不存在的文章就介紹到這了,更多相關idea報錯java程序包不存在內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot如何接收application/x-www-form-urlencoded類型的請求
這篇文章主要介紹了springboot如何接收application/x-www-form-urlencoded類型的請求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java兩種動態(tài)代理JDK動態(tài)代理和CGLIB動態(tài)代理詳解
這篇文章主要介紹了Java兩種動態(tài)代理JDK動態(tài)代理和CGLIB動態(tài)代理詳解,代理模式是23種設計模式的一種,他是指一個對象A通過持有另一個對象B,可以具有B同樣的行為的模式,為了對外開放協(xié)議,B往往實現了一個接口,A也會去實現接口,需要的朋友可以參考下2023-11-11
Maven?項目用Assembly打包可執(zhí)行jar包的方法
這篇文章主要介紹了Maven?項目用Assembly打包可執(zhí)行jar包的方法,該方法只可打包非spring項目的可執(zhí)行jar包,需要的朋友可以參考下2023-03-03

