sbt/Scala 是否有类似 Bundler/pip 的 ~=、>= 兼容版本依赖语法?
Sbt依赖版本约束语法说明
sbt原生支持你提到的两类依赖版本约束能力,和bundler、pip的对应语法逻辑基本对齐:
- 对应
>=的最小版本约束:直接在版本号末尾加+即可,比如声明大于等于2.8.0版本的play-json依赖,写法为:
该配置会让sbt自动拉取2.8.0及以上的最新稳定版本。"com.typesafe.play" %% "play-json" % "2.8.0+" - 对应
~=的兼容版本约束(不跨大版本/次版本更新):使用通配符匹配指定版本段即可,比如只允许更新2.8.x系列的修订版本,写法为:
该配置只会拉取2.8.x的最新版本,不会升级到2.9.0及以上;如果写成"com.typesafe.play" %% "play-json" % "2.8.+""2.+"则匹配所有2.x系列版本,不会升级到3.0.0及以上,和~=2.0的效果完全一致。
如果需要锁定实际使用的依赖版本避免意外更新,可以搭配sbt的依赖锁插件使用,功能和Bundler的Gemfile.lock、pip的依赖锁文件对齐。
内容的提问来源于stack exchange,提问作者Zhao Li
相关产品推荐
相关产品推荐

