如何构建依赖已无法从仓库获取的Scala遗留项目?
解决遗留Scala项目依赖无法获取的问题
补全旧仓库源
这些早期sbt插件大多托管在Lightbend(原Typesafe)的专属仓库,直接在项目的project/plugins.sbt里添加以下仓库配置:resolvers += "Typesafe Releases" at "https://repo.typesafe.com/typesafe/releases/" resolvers += "Sonatype Releases" at "https://oss.sonatype.org/content/repositories/releases/"很多旧版插件从这两个仓库就能拉取到。
复用本地缓存或手动导入依赖
如果身边有能正常构建该项目的旧环境,直接把~/.ivy2/cache里对应插件的目录复制到你当前环境的同路径下;要是找不到旧环境,就搜索这些插件的完整jar包名(比如sbt-twirl_2.10_0.13-1.0.2.jar),下载后在项目根目录建个local-plugins文件夹,按照Maven的目录结构(比如com/typesafe/sbt/sbt-twirl/1.0.2/)存放,然后在plugins.sbt里添加本地仓库:resolvers += "Local Plugin Repo" at file("./local-plugins").toURI.toString查找归档镜像仓库
部分第三方镜像站会归档旧版本开源依赖,直接搜索插件的groupId+artifactId+版本号,确认有没有镜像托管,找到后把镜像地址加到resolvers里即可,注意校验文件哈希避免安全问题。手动构建插件源码(最后备选)
去GitHub找这些插件的仓库,切换到对应版本的tag(比如sbt-twirl的v1.0.2),克隆下来后本地执行sbt publishLocal,把插件发布到本地ivy仓库,项目就能从本地拉取依赖了。
内容的提问来源于stack exchange,提问作者ynn
相关产品推荐
相关产品推荐

