本篇內容介紹了“maven報錯找不到符號怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創新互聯自2013年創立以來,先為礦區等服務建站,礦區等地企業,進行企業商務咨詢服務。為礦區企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。語言:Java和Scala并用
場景:存在java調用scala代碼的情況
maven版本:3.5.1
IDE:IDEA 2017.1
<h3 id="maven報錯找不到符號" white-space:normal;background-color:#ffffff;"=""> maven報錯:找不到符號
并列出找不到的類或程序所在的程序包、位置
在一開始遇到maven問題時,網路上可以搜到的資料基本支持以下幾種情況:
1.清理cache
- 使用mvn clean命令清理
- 使用IDEA里面的Invalid Cache清理
2.編碼格式不統一
- 在pom.xml中將compiler的編碼格式設為UTF-8
3.IDE和項目本身的jdk版本不統一
- 檢查IDE編譯使用的jdk版本和在pom.xml中配置的jdk版本是否統一
4.pom的依賴問題
以上4種情況的解決方法,詳細可參考 http://blog.csdn.net/u012062455/article/details/52347099。
上述問題是在網路中搜索得到的主要幾種情況,但和我的情況均不相符,無法解決我的問題。
對錯誤進行定位后,我發現,項目中的scala代碼和java代碼均可以正常單獨編譯,但同時編譯會報錯。首先,排除了代碼位于不同包的情況的影響;進一步定位后發現,錯誤出現在,使用java代碼調用scala代碼時,也就是說,我在java代碼中,只要import了scala的類,就會報錯。
原因定位后,在stackoverflow的一個不太相關的問題的評論中看到了這樣一句話,大意是,若在java代碼中調用了scala代碼,則需先編譯scala代碼,后編譯java代碼。
這句話以后,茅塞頓開,現給出兩種解決方法:
使用mvn命令控制編譯順序
在pom.xml里面配置編譯順序
這部分我研究不深,因此只給出一個成功的配置方案。
以上兩種方法均可以編譯成功,解決以上maven報錯。
下面將敘述一個我比較困惑的情況,望不吝解答。
我將列出一個pom.xml的示例,里面也有配置scala-compile的順序,使用scala-compile-first這樣的字樣進行控制。
但該配置,在實際使用中,在工程1里可行,但工程2里會報錯,然而我兩個工程里的配置,順序幾乎放的一樣,只不過工程2中可能多引入了很多dependency,配置如下:
這是我失敗情況的配置,不要使用。
這里的scala-compile-first起到的是什么作用,為什么失效了呢?
在找到問題所在之后,再進行搜索,發現已有文檔提出,若使用java調用scala,需要先編譯scala的情況,比如/tupian/20230522/5730552.html
由此可見,對于自己需要查找的問題, 關鍵詞總結的本領,還要繼續加強。
“maven報錯找不到符號怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯-成都網站建設公司網站,小編將為大家輸出更多高質量的實用文章!
網頁標題:maven報錯找不到符號怎么解決-創新互聯
文章位置:http://vcdvsql.cn/article18/cdjcgp.html
成都網站建設公司_創新互聯,為您提供企業網站制作、App開發、網站導航、服務器托管、靜態網站、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯