2013-02-20 147 views
23

我想了解搖籃如何處理依賴版本帶有「+」號作爲例子8.1在這裏看到: http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html搖籃依賴版本的「+」號

testCompile group: 'junit', name: 'junit', version: '4.+ 

文檔指出,這將得到一個版本的junit> = 4.0。如何得到大於(或等於)的依賴的版本,比如5.10?這是否是5.10+5.1+?前者似乎不能正常工作,但後者確實如此。我如何獲得大於或等於1.22的依賴關係? 1.2+?在這種情況下,如果版本1.21存在並且是最新版本,我想失敗,因爲我想要大於或等於1.22,但是1.2+會查找> = 1.20。我怎樣才能指定這個?這可能嗎?我似乎無法找到更多的文件。

編輯:我傾向於認爲它爲1.2+相當於1.2([0-9]+)。這是否是正確的思維方式?

回答

22

在這種情況下,如果1.21版本存在,並且是最新的版本,我 想失敗了,因爲我要大於或等於1.22,但 1.2+會尋找> = 1.20。我怎樣才能指定這個?這可能嗎?

我不認爲有這個的任何文件,但由於最初搖籃引擎蓋其所有的依賴管理功能下使用常春藤,我看了看常青藤文檔中有關動態版本:

http://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency.html

它只比Gradle文檔略多。我試着在搖籃嘗試用常春藤風格的版本範圍:

compile group: 'log4j', name: 'log4j', version: '[1.2.12,1.2.17]' 

和令人驚訝地似乎有時工作根據不同的型號範圍是什麼。在上面的例子中,它解析爲1.2.17

我知道這並不能完全解決您的問題(我也很好奇),但希望它能爲您提供一些信息。

+3

Ahhhh常春藤!我一直在尋找maven文檔來了解它。 http://ant.apache.org/ivy/history/trunk/settings/version-matchers.html我假設sub-revision匹配器是發生什麼? – 2013-02-20 18:35:19