我對如何使用maven provided
範圍和Java類加載器存在誤解。Maven提供的範圍和Java類加載器
假設我有一個類MyClass
,並且此類有一個serialize()
方法,該方法使用一個枚舉來描述序列化時要使用的JSON庫。
其中一個JSON庫是內部的,並且包含在我爲MyClass分發的JAR中。簡單。
另一個JSON庫是我想強制用戶提供的第三方庫。因此,我把它放在我的pom下<scope>provided</scope>
。
一切都在測試過程中對我的作品,但是當我試圖用我自己的庫從外面沒有第三方JSON庫在我的類路徑,我得到ClassNotFoundException
S,雖然我不是做一個呼叫serialize()
在所有。
我是那類只加載「按需」的假設下,因爲我不是做一個呼叫serialize()
,我不應該有任何運行時的問題。我錯了嗎?有沒有辦法實現我在這裏得到的?