gpt4 book ai didi

scala - 在 sbt 多项目构建中使用部署的工件而不是本地项目

转载 作者:行者123 更新时间:2023-12-02 01:41:39 24 4
gpt4 key购买 nike

我有一个 sbt 多项目构建

lazy val a = project

lazy val b = project.dependsOn(a)

我一直致力于 a 和 b。有时我想发布一个新版本的b而不发布一个新版本的a。当然这需要b仍然兼容上次发布的a。我如何轻松测试这个?当我在 b 中编译和运行测试时,它将使用我的 a 的本地源代码,但这种情况经常发生变化。相反,我想针对 a 的最后发布的工件编译和测试 b。我基本上需要能够暂时覆盖该行为。有什么想法:)?

最佳答案

这是一种打破所有项目间依赖关系的机制:

val useExternalDeps = settingKey[Boolean]("If true, we don't use inter-project dependencies")

lazy val a = project
lazy val b = project.dependsOn(a).settings(
useExternalDeps := false,
fullResolvers := {
if(!useExternalDeps.value) fullResolvers.value
else fullResolvers.value.filterNot(_.name == "inter-project")
}
)

只需在 sbt shell 中调用 set useExternalDeps := true 然后 Ivy/sbt 将停止在项目之间寻找工件。

关于scala - 在 sbt 多项目构建中使用部署的工件而不是本地项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28185410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com