從文檔中瞭解如果期望JDK或容器在運行時提供依賴關係,則使用提供的作用域。問題:我如何知道特定的jar文件是由JDK或容器提供的?提供的Maven作用域
如果我總是使用默認範圍(編譯),有什麼不同?
對不起我的愚蠢問題,因爲我是新的Java和Maven。
從文檔中瞭解如果期望JDK或容器在運行時提供依賴關係,則使用提供的作用域。問題:我如何知道特定的jar文件是由JDK或容器提供的?提供的Maven作用域
如果我總是使用默認範圍(編譯),有什麼不同?
對不起我的愚蠢問題,因爲我是新的Java和Maven。
你不知道 - 它是由你來決定什麼可以列舉出包(示波器compile
)或給定的庫將可在類路徑上運行 - 這就是provided
意味着
我只想指出,對於某些你不應該打包東西的東西 - 例如在部署J2EE容器(servlet API,java beans,這些東西)時不要打包J2EE API jar。對於那些包裝你自己的服務器實現的API副本的東西會導致運行時問題。 – radai
是。它歸結爲依賴項是否應該包含在輸出文件中。如果你使用* provided *,它不會,你需要知道你用一個提供xyz日誌框架的容器來運行它(或者你將運行一個包含xyz.jar的類路徑來管理這個依賴關係*)* 。 –