當我在Maven項目執行版本Maven插件插件使用以下命令:版本Maven插件:包版本後未發現:用最新版本
mvn versions:use-latest-versions
pom.xml中被按照它應該做的更新依賴關係更新。
問題是,一些庫更新到版本如新的不包含某些早期版本中使用的包所以編譯器說:包沒有找到。有誰知道如何自動避免?我的意思是,更新到我的代碼中使用的包和類的最新版本。
當我在Maven項目執行版本Maven插件插件使用以下命令:版本Maven插件:包版本後未發現:用最新版本
mvn versions:use-latest-versions
pom.xml中被按照它應該做的更新依賴關係更新。
問題是,一些庫更新到版本如新的不包含某些早期版本中使用的包所以編譯器說:包沒有找到。有誰知道如何自動避免?我的意思是,更新到我的代碼中使用的包和類的最新版本。
在我看來,沒有簡單的方法來確定哪個版本更新是「保存」。
即使您要檢查您編譯的所有類仍存在,方法簽名可能已更改。即使所有方法簽名保持不變,行爲可能已經改變,導致運行時異常等。
我知道檢查版本更新的唯一合理方法是運行編譯並運行所有測試用例。爲可能的版本更新的所有組合執行此操作是可能的,但這需要很長時間。
所有回覆都很好,我給你接受是第一個回答的人 –
該插件不會分析您的代碼並相應地調整依賴項版本。
目標use-latest-versions
的目標是將項目升級到最新版本的項目依賴關係,並且由於您可能遇到編譯和部署問題。 一旦確定了需要修復所有問題的問題,以便將整個項目升級到最新版本的依賴關係。
的問題是,一些庫更新到版本如新 的不包含某些早期版本中使用的軟件包使 編譯器說找不到包。有誰知道如何自動避免 ?我的意思是,更新到最新版本,其中包含我在代碼中使用的包和類。
當然,這是不可能的。
更新依賴關係不是偶然的遊戲。
如果您需要擁有最新版本的依賴關係,則不必擔心該版本是因爲您需要而中斷還是不會中斷您的代碼。
由於需要更新該版本,因此您需要更新庫。如果你不需要更新你的依賴關係,不要更新你的依賴關係,但是如果你需要這樣做的話,如果有必要,你應該做更新代碼的工作。
我不確定我是否理解你的用例。假設您將軟件包X列爲依賴項。 X依賴於Y並且您也使用Y,但不要將其明確列爲依賴項。現在你有版本插件更新和Y不再是X的依賴,但你仍然在你的代碼中使用它? – Matthias
我正在做一個假設,但我不認爲插件的目的是在升級依賴關係後檢查代碼是否仍在編譯。事實上,這是相當危險的,因爲你可能有(如你剛纔所說的)源代碼引用了不推薦的方法等等,導致錯誤。 而且可能還有更多:你認爲**執照**嗎? 無論如何,看看這裏,有很好的回答你的背景: [here](http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-最新版本的依賴) – MadJlzz