使用 SBT 时,是否有一种通用的方法来热修复 Scala 依赖项?

When using SBT, is there a generic way to hot-fix a Scala dependency?

假设我正在创建一个名为 Y 的 SBT 项目,它在 SBT 构建中使用包 X

libraryDependencies ++= Seq(
  "org.something" %% "X" % XVersion
)

我了解到 X 包含一个小错误,开发人员正在处理该错误(谢谢!)。 X(使用 SBT 构建)的代码可用于克隆,我知道如何在开发人员处理此问题时修复此问题。

以下是我希望能够做到的事情:

  1. 克隆 X~/code/X
  2. 只需编辑代码即可创建修补程序
  3. 在我自己的项目 Ybuild.sbt 中,将 "org.something" %% "X" % XVersion 替换为 link 到 ~/code/X 以便我自己的代码用热修复。

有通用的方法吗?这很有可能在 SBT Docs 中有所描述,我很乐意提供指导 - 有很多文档使用了新术语。

示例(但问题是关于一般情况):这个 build file 对于我正在尝试热修复的包来说很复杂,我很想有一种热修复的方法-无需完全理解此构建文件即可修复。

您可以编辑依赖项代码,然后 运行 sbt publishLocal 这将创建一个新的本地版本的依赖项并应用更改,然后您可以编辑 build.sbt 以使用那个新版本,这就是本地设置所需的全部内容

如果你有一些 CI 管道或者你深入你的代码,你将需要做更多的事情,但这是基本的想法。