gpt4 book ai didi

java - 智能 : How do I override a dependency in SBT with a module imported from local source?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:32 26 4
gpt4 key购买 nike

我有 2 个项目,项目 A 和项目 B。项目 A 是一个 Play2 应用程序,它依赖于项目 B(它是一个客户端库)。目前项目 B 是从我们的 SBT 工件中提取的。我想设置 IntelliJ,以便从我计算机上的项目源中提取项目 B,而不是从中指定的工件中提取。

我已将项目 B 添加为项目 A 的模块,并将模块 B 添加到模块 A 的依赖项中。然后我将模块 B 置于依赖列表的最顶部。代码的静态分析似乎工作正常,当我更新项目 A 的代码以使用我在项目 B 中更新的新方法签名时,没有显示编译错误。但是,当我运行 Play App 时,我得到了一个编译错误说明方法签名不正确。

有没有办法覆盖 SBT 和 Play 应用在运行时使用的模块?

最佳答案

你可以通过 sbt 做到这一点。在你的 build.sbt 中,例如:

val localDep = ProjectRef(file("/Users/me/projects/b"), "b")

dependsOn(localDep)

IntelliJ 会将此依赖项作为模块导入。但是,您应该删除库依赖项,以避免类路径冲突。

自然地,这使得项目很难共享,除非其他开发人员在同一位置拥有该项目。在那种情况下,我会创建一个 multi-project build相反,这通常是具有单独结果工件的紧密耦合项目的最佳选择。

另一种选择是 git 项目依赖:

val projectDep = ProjectRef(uri("git://github.com/me/b"),"b")

关于java - 智能 : How do I override a dependency in SBT with a module imported from local source?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841316/

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