我是新來的java。當我查看jar文件時,我看到文件名中包含版本的混合,而不是。什麼時候jar文件名應該有一個版本號?這有什麼優點和缺點?
- 在什麼情況下這些都是一個好主意?
- 將版本號放入jar文件名有什麼優點和缺點?
- 如果一個版本是一個jar文件名,客戶端jar是否需要重新編譯才能使用它?
我環顧四周找到了這方面的信息,但我主要是找到說明方向,而不是深思熟慮的解釋。 This link有點幫助,但thesetwo所以問題不是真的。
我是新來的java。當我查看jar文件時,我看到文件名中包含版本的混合,而不是。什麼時候jar文件名應該有一個版本號?這有什麼優點和缺點?
我環顧四周找到了這方面的信息,但我主要是找到說明方向,而不是深思熟慮的解釋。 This link有點幫助,但thesetwo所以問題不是真的。
*:例如,insignificat缺點,比如可執行罐子可能是不容易的版本號是鍵入
**: 例如,如果你有類com.foo.Bar
在兩個jar-文件,類加載器將加載任意一個,通常取決於哪個先找到。如果您有兩個版本的相同jar文件,則同樣適用 - 您通常不知道將使用哪個版本。
你能詳細說說3嗎? – 2013-05-10 12:24:26
如果您將這些罐子保存在一個文件夾中,並且在IDE中手動更新對這些罐子的引用,那麼最終的版本可能會超過您的同事。所以,我建議使用maven。 (而不是替換文件「mylib.jar」,你可能會不小心添加一個(「mylib-1.0.jar」和「mylib-1.1.jar」), ) 同樣,如果你正在使用maven或其他項目管理工具,它不應該是一個問題 – Igor 2013-05-10 12:38:05
我很困惑如果我有兩個版本的「相同」的jar可用(但由於版本不同的文件名)使用的是**任意的**?這似乎很可怕 – tallseth 2013-05-10 13:17:13
當然,好主意,使用Maven http://maven.apache.org/,它會自動建立與版本罐子,沒有缺點優點只有
這聽起來不錯,但我更感興趣的是爲什麼要選擇一個約定而不是另外的,而不是規定性的建議去做x或y。 – tallseth 2013-05-10 13:18:37
您正在尋找主觀意見....我對此有主觀意見。我維護JDOM項目。我們有許多罐子,在項目的早期階段,我們有無版本的罐子名稱。現在我們有一個版本化的jar名稱。
我們切換的原因是:
的原因,我已經聽到了有versionless罐子(但我不同意)
我沒有理由在沒有理由的情況下強調無版本jar是合適的。
我意識到的唯一問題是當您構建在工作站上執行或作爲腳本的一部分執行的jar文件時。
你可以通過在你的jar文件中包含一個腳本文件來解決這個問題。
下面是一個Windows示例:
application.cmd
java.exe application_2013_05_10.jar
當您更新jar文件,則在更新的同時腳本文件(S)。用戶執行application.cmd腳本文件。
@rgettman,是一個更爲具體的解釋,爲什麼一個問題關閉了太多問?這是一個在其他地方不容易回答的問題,而且對我來說似乎並不主觀。我覺得我證明了我在別處研究過這個問題?我對其他幾個無用的SO問題(你是否應該版本化?是的,無論是什麼問題)並不滿意,並且想知道什麼樣的力量會促成任何選擇。是stackoverflow錯誤的地方去得到一個技術問題的詳細答案?期待關於問題結束的反饋意見是不合理的嗎? – tallseth 2013-05-13 12:56:38
FWIW我認爲這是一個完全合理的問題。 Egomaniacs在沒有給出理由的情況下關閉問題根本沒有幫助。 – ksl 2015-12-08 14:55:32