我遇到了一個困惑。我在我的maven java專案中使用了兩個外部jar(one.jar和two.jar)。
one.jar呼叫/使用two.jar作為依賴。 如果在構建one.jar時,two.jar的版本是1.1.1,那么如果我在代碼中匯入這兩個jar,并將two.jar重命名為1.1.2版本,這是否可行?one.jar是否能夠找到名稱不同的two.jar呢?
我想知道,改變名稱的jar是否能被其呼叫者發現?
CodePudding
在運行時,它并不像那樣作業。它不像一個jar會試圖找到另一個jar。或特定版本的jar。是類試圖找到并加載另一個類來解決依賴關系。如果更新的jar版本具有向后兼容性,你將不會面臨任何問題,否則你可能面臨一些運行時問題。為此,你可能需要閱讀jar的發布說明,并嘗試找出它對使用它的jar的影響。
uj5u.com熱心網友回復:
如果你正在使用一個戰爭檔案,并且沒有在依賴關系中使用所提供的范圍 的依賴關系中沒有使用所提供的范圍,并且jar1在依賴關系中也沒有使用所提供的范圍給 jar2,它將被打包在.war檔案中。所以jar2的改名只會影響到 當戰爭被重建時
對于獨立的專案
如果外部jar安裝在repo中并從repo中使用,那么改變jar名稱的影響將從你在名稱改變后重新編譯主專案時開始。它可能無法編譯,這取決于在定義從主專案到jar1以及jar1到jar2的依賴關系時所使用的范圍
示例示例
如果jar1使用的是來自maven repo的jar2,那么名稱的改變將取決于范圍
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/310132.html
標籤:
