2011-08-23 87 views

回答

7

它們在正式意義上不會被棄用,它們將在未來的版本中被刪除。然而,它們的侷限性(以及隨後沒有被廣泛採用)意味着它們沒有原來預期的那麼有用,並且它們不可能在沒有重新思考的情況下得到改進。

這就是爲什麼文檔只是設計文檔的形式 - 它們存在,但重要的用例從來沒有完成到我建議通常使用它們的地步。

如果您有一個目前可行的用例,並且可以適應這些限制,您可以期待他們繼續爲可預見的將來工作,但除此之外,還有一點不足。

+0

謝謝,非常有幫助! – Kutzi

5

我不知道你爲什麼認爲版本範圍沒有記錄。 Maven Complete Reference文檔中有一個具體的摘要。

儘管如此 - 一個巨大的問題(在我看來)是,它被記錄爲「依賴範圍的解決方案不應解析爲快照(開發版本),除非它被包含爲一個明確的邊界。(您提供的鏈接)但系統表現不同。如果您使用版本範圍,如果它們存在於您的範圍內(MNG-3092),您將獲得SNAPSHOT版本。如果這是需要的討論還沒有結束。

當前 - 如果您使用版本範圍 - 您可能會獲得SNAPSHOT依賴項。所以你真的要小心,並決定是否需要這個。它可能對你自己發展的依賴很有用,但我懷疑你應該將它用於第三方庫。

+0

嗯,我是谷歌搜索它,我能找到的最好的是上面的鏈接。我希望在Apache網站上有一些官員 - 因爲畢竟它是一個Apache項目。但感謝您的鏈接。 – Kutzi

+0

@Kutzi Sonatype是maven項目(和生態系統)的[strong](http://www.sonatype.com/About-Sonatype/Contributions)貢獻者 - 因此他們的文檔也是某種「第一手」信息。 – FrVaBe

+1

但只有'第一手'。所以,直到我看到官方的Apache文檔,我堅持我的聲明,版本範圍沒有記錄;-) – Kutzi

-1

版本範圍是Maven仍然有用的唯一原因。即使考慮不使用它們也是不好的做法,因爲它會導致您陷入多模塊構建,非功能父級poms,需要10分鐘或更長時間的構建,像Spring,Hibernate和Wicket這樣結構嚴密的項目,因爲我們覆蓋了我們的非法項目參數播客。

爲了回答你的問題,他們不被棄用,併成功地在許多項目中成功使用(除了Sonatype允許損壞的元數據到Apache Maven Central)。

如果您想要一個很好的非多模塊構建示例(僅適用於reactor.xml),其中廣泛使用了版本範圍,請查看粘滯代碼(http://code.google.com/p/) stickycode /)