2016-08-25 31 views
1

當我使用範圍語法時,我似乎無法讓SBT解決我的依賴關係。sbt/ivy版本系列無法解析但確切版本

所以

libraryDependencies ++= Seq(
    //exact version works i.e.  0.5.3+27 
    //but what we want to work is [0.5.3,) 
    //or I've since moved the build number to the 4th component 0.5.3.+ 
    "company"    %% "project"  % "0.5.3.+", 
    //... 
) 

我能得到確切的版本,做工精細,但沒有一個版本的語法在 https://ant.apache.org/ivy/history/2.3.0/ivyfile/dependency.html#revision 指定或http://www.scala-sbt.org/0.13/docs/Library-Management.html工作的例子。

我環顧四周,發現這裏有一個像這樣的東西的修復程序https://github.com/sbt/sbt/pull/2075其中進入sbt 0.13.9,我使用0.13.11

第一個版本範圍是我使用的,因爲語義版本爲10中的元數據推薦什麼時候不起作用,庫management docs/Ivy revision docs說「用+結束脩訂版選擇最新的修訂版依賴模塊「,所以我刪除了+以防造成問題,並添加了第四個組件,這就是GoCD提供的內部版本號。同樣確切的版本可以使用,但不能進行修訂。

在SBT我可以看到兩種格式的URL被擊中:

  1. https://dl.bintray.com/<username> /內部釋放/ <namespace>/<project-name> _2.11/[revision]/<project-name> _2.11- [修改] .pom
  2. http://dl.bintray.com/<username> /內部釋放/ <namespace>/<project-name> _2.11/[revision] /ivys/ivy.xml

請注意這裏[revision]是字面意義上的URL打印。尖括號中的內容是我的替代品。因此,爲什麼我認爲issue 2005是相關的。 我沒有SBT存儲庫文件。

所以對於這個問題,我在上面做錯了什麼,我如何使用min.minor.patch.build語法來獲得版本範圍的工作,即0.x.x.+

回答

0

解決了這個問題。 Bintray目錄列表中沒有有效的HTTP鏈接(二進制文件中的反爬蟲工作)。因此,Ivy解析程序無法獲取已發佈版本的列表。

使用Maven佈局而不是Ivy的工作,因爲Maven格式包含一個metadata.xml,其中列出了所有可用的版本。 因此,解決方法是使用maven佈局而不是Ivy來重新發布庫,以獲取此元數據。

相關問題