sbt/ivy 版本范围无法解析,但确切版本可以解析
sbt/ivy version ranges does not resolve but exact versions do
当我使用范围语法时,我似乎无法让 SBT 解决我的依赖关系。
所以
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.+",
//...
)
我可以获得准确的版本以正常工作,但是 none 指定的版本语法
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 when that didn't work, the library management docs / Ivy revision docs 中建议元数据说 "end the revision with a + selects the latest sub-revision of the dependency module",所以我删除了 + 以防出现问题,并且添加了第四个组件,它只是 GoCD 提供的内部版本号。同样,精确版本有效,但子修订版无效。
在 sbt 中,我可以看到正在命中的两种格式中的 URL:
- https://dl.bintray.com/
<username>
/internal-releases/<namespace>
/<project-name>
_2.11/[revision]
/<project-name>
_2.11- [修订版].pom
- http://dl.bintray.com/
<username>
/internal-releases/<namespace>
/<project-name>
_2.11/[revision]
/ivys/ivy.xml
注意这里[revision]
是URL字面上打印出来的。尖括号中的东西是我的替代品。因此,为什么我认为 issue 2005 是相关的。
我没有 SBT 存储库文件。
所以对于这个问题,我在上面做错了什么,我如何使用 min.minor.patch.build
语法获得版本范围,即 0.x.x.+
?
解决了这个问题。
Bintray 目录列表没有有效的 HTTP 链接(Binary 方面的反爬虫努力。)因此 Ivy 解析器无法获取已发布版本的列表。
使用 maven 布局而不是 Ivy 的布局是可行的,因为 Maven 格式包含一个 metadata.xml,它列出了所有可用的版本。
因此,解决方法是使用 Maven 布局而不是 Ivy 重新发布库来获取此元数据。
当我使用范围语法时,我似乎无法让 SBT 解决我的依赖关系。
所以
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.+",
//...
)
我可以获得准确的版本以正常工作,但是 none 指定的版本语法 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 when that didn't work, the library management docs / Ivy revision docs 中建议元数据说 "end the revision with a + selects the latest sub-revision of the dependency module",所以我删除了 + 以防出现问题,并且添加了第四个组件,它只是 GoCD 提供的内部版本号。同样,精确版本有效,但子修订版无效。
在 sbt 中,我可以看到正在命中的两种格式中的 URL:
- https://dl.bintray.com/
<username>
/internal-releases/<namespace>
/<project-name>
_2.11/[revision]
/<project-name>
_2.11- [修订版].pom - http://dl.bintray.com/
<username>
/internal-releases/<namespace>
/<project-name>
_2.11/[revision]
/ivys/ivy.xml
注意这里[revision]
是URL字面上打印出来的。尖括号中的东西是我的替代品。因此,为什么我认为 issue 2005 是相关的。
我没有 SBT 存储库文件。
所以对于这个问题,我在上面做错了什么,我如何使用 min.minor.patch.build
语法获得版本范围,即 0.x.x.+
?
解决了这个问题。 Bintray 目录列表没有有效的 HTTP 链接(Binary 方面的反爬虫努力。)因此 Ivy 解析器无法获取已发布版本的列表。
使用 maven 布局而不是 Ivy 的布局是可行的,因为 Maven 格式包含一个 metadata.xml,它列出了所有可用的版本。 因此,解决方法是使用 Maven 布局而不是 Ivy 重新发布库来获取此元数据。