使用 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 构建)的代码可用于克隆,我知道如何在开发人员处理此问题时修复此问题。
以下是我希望能够做到的事情:
- 克隆
X
到 ~/code/X
- 只需编辑代码即可创建修补程序
- 在我自己的项目
Y
的 build.sbt
中,将 "org.something" %% "X" % XVersion
替换为 link 到 ~/code/X
以便我自己的代码用热修复。
有通用的方法吗?这很有可能在 SBT Docs 中有所描述,我很乐意提供指导 - 有很多文档使用了新术语。
示例(但问题是关于一般情况):这个 build file 对于我正在尝试热修复的包来说很复杂,我很想有一种热修复的方法-无需完全理解此构建文件即可修复。
您可以编辑依赖项代码,然后 运行 sbt publishLocal
这将创建一个新的本地版本的依赖项并应用更改,然后您可以编辑 build.sbt
以使用那个新版本,这就是本地设置所需的全部内容
如果你有一些 CI 管道或者你深入你的代码,你将需要做更多的事情,但这是基本的想法。
假设我正在创建一个名为 Y
的 SBT 项目,它在 SBT 构建中使用包 X
:
libraryDependencies ++= Seq(
"org.something" %% "X" % XVersion
)
我了解到 X
包含一个小错误,开发人员正在处理该错误(谢谢!)。 X
(使用 SBT 构建)的代码可用于克隆,我知道如何在开发人员处理此问题时修复此问题。
以下是我希望能够做到的事情:
- 克隆
X
到~/code/X
- 只需编辑代码即可创建修补程序
- 在我自己的项目
Y
的build.sbt
中,将"org.something" %% "X" % XVersion
替换为 link 到~/code/X
以便我自己的代码用热修复。
有通用的方法吗?这很有可能在 SBT Docs 中有所描述,我很乐意提供指导 - 有很多文档使用了新术语。
示例(但问题是关于一般情况):这个 build file 对于我正在尝试热修复的包来说很复杂,我很想有一种热修复的方法-无需完全理解此构建文件即可修复。
您可以编辑依赖项代码,然后 运行 sbt publishLocal
这将创建一个新的本地版本的依赖项并应用更改,然后您可以编辑 build.sbt
以使用那个新版本,这就是本地设置所需的全部内容
如果你有一些 CI 管道或者你深入你的代码,你将需要做更多的事情,但这是基本的想法。