mvn exec運行java Main報錯

前言

今天在IDEA上寫了一個項目,使用IDEA運行main函數時,程序運行正常,但是放到服務器上,使用maven的指令:mvn exec:java -Dexec.mainClass=""的時候,報了一個八竿子打不着的錯誤:ObjectInputStream的異常。
但是項目在IDEA上執行是正常的,於是我在本地也使用mvn exec來執行項目,發現還是報錯。
陷入了沉思。。。

解決思路

IDEA運行時,使用的class文件和mvn exec使用的文件是一致的,那麼問題就應該出現在依賴的包上,於是寫了另一個Main類,在裏面調用了引用的依賴中的一個類,然後使用mvc exec執行這個Main類,發現報錯ClassNotFoundExeception。

問題就很明顯了,mvn exec執行的時候,並沒有將依賴引入進來。

解決方式

考慮到maven引入依賴的時候,所有依賴默認的scope都是compile。
exec文檔說可以修改執行時類路徑的scope,於是在原有指令後面加了一個 -Dexec.classpathScope=compile,程序就能正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章