如何从源码安装sbt插件?解决sbt-start-script依赖下载失败问题
问题根因
你遇到的依赖拉取失败,核心原因是com.typesafe.sbt:sbt-start-script:0.10.0仅支持sbt 0.13.x版本,你当前项目使用的是sbt 1.x系列版本,公共仓库没有发布适配sbt 1.x、Scala 2.12的对应插件版本,因此无法直接拉取。
源码本地安装操作步骤
可以通过下载源码本地编译的方式安装适配你当前环境的插件版本,操作步骤如下:
- 下载
sbt-start-script的源码到本地设备 - 进入源码根目录,修改
project/build.properties文件,将sbt.version配置改为你当前项目使用的sbt 1.x版本,比如sbt.version=1.8.2 - 修改源码根目录下的
build.sbt文件,自定义插件版本号,比如将version配置改为0.10.0-sbt1x,避免和官方版本冲突 - 在源码根目录执行命令
sbt publishLocal,等待编译和发布完成,插件会被推送到你本地的Ivy仓库中 - 回到你自己的项目,修改
plugins.sbt里的插件依赖配置,将版本替换为你自定义的版本即可:addSbtPlugin("com.typesafe.sbt" % "sbt-start-script" % "0.10.0-sbt1x")
更简单的替代方案
sbt-start-script的功能已经被官方维护的sbt-native-packager插件内置,无需自行编译旧插件,直接使用原生替代方案即可:
- 在
plugins.sbt中添加插件依赖:addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16") - 在项目的
build.sbt中启用插件:enablePlugins(JavaAppPackaging) - 执行
sbt stage命令,即可在target/universal/stage/bin目录下生成和sbt-start-script功能完全一致的项目启动脚本
内容的提问来源于stack exchange,提问作者Aucker AN
相关产品推荐
相关产品推荐

