如何在 sbt 库中为 `1.0.0-M10` 及以上版本设置依赖关系

问题描述 投票:0回答:2

我想要编写库,它应该与工件一起使用

"org" %% "scanamo"
版本
1.0.0-M10
及以上版本,例如
1.0.0-M11
1.0.0-RC1
1.0.1
。但版本应该选择库的用户。

我厌倦了 sbt

"org" %% "scanamo" % "1.0.+"
,但找不到任何版本。

如何使用规则“

1.0.0-M10
及以上”在库中设置用户提供的依赖项

scala sbt scanamo
2个回答
1
投票

Sbt 默认使用 Ivy 进行依赖解析。 Ivy 支持

version matchers
的概念。

根据您的需求,使用像

latest.milestone
这样简单的内容来代替版本号就足够了,并且将确保始终引入最新的里程碑。

例如:

"org" %% "scanamo" % "latest.milestone"

注意:sbt 1.3 默认使用 Coursier 而不是 Ivy。

编辑:如果使用 sbt 1.3,Coursier 似乎也具有类似的功能。请参阅Coursier 版本处理


0
投票

没有这样的功能。

作为库,您可以指定所需的版本。只是一个特定版本。

如果库用户选择使用不同的版本(或者另一个依赖项拉入不同的版本),则将选择最高版本。

该较高版本可能适用于您的库,也可能不适用于您的库。如果 SBT 认为(根据语义版本控制规则)该版本可能不兼容,它将打印一条警告。但这是否有效取决于用户。

有点乱。尤其是在 Scalaland 中,不兼容的库更新很频繁。

如何使用规则“1.0.0-M10 及以上”在库中设置用户提供的依赖项

您依赖

org" %% "scanamo" % "1.0.0-M10"
。您希望后续版本与其保持兼容。

© www.soinside.com 2019 - 2024. All rights reserved.