我正在开发一个库和一个并行依赖它的应用程序,我想单独发布它们。由于我经常编辑这两个,我希望能够在 IntelliJ 中加载它们,以便“转到定义”正常工作(即带我到另一个项目的可编辑源),并且重建将包含所做的更改另一个模块,无需重新运行 sbt publishLocal
并刷新另一个项目。
我设法通过手动添加多个 SBT 项目并手动编辑它们的依赖项来让 IntelliJ 做到这一点,但是一旦我添加了库依赖项并刷新了 SBT 定义,我的编辑就消失了。
我怎样才能让 IntelliJ 理解 libraryDependency
另一个项目应该作为模块实现和导入,而不是从本地 maven 存储库?
最佳答案
我也在寻找你的问题的解决方案。但是,在那之前,我希望能提供一个可以接受的解决方法。
您可以暂时从您的项目中删除您的 Ivy2 依赖项并将其定义为您的 sbt 中的项目。例如,如果您的 OtherProject 与当前项目位于同一目录中,则可以按如下方式添加它:
lazy val otherProject = RootProject(file("../OtherProject"))
之后,您需要使用 指定对 OtherProject 的依赖项。依赖 :
lazy val myProjectRoot = project.in(file(".")).settings(...).dependsOn(otherProject)
IntelliJ 然后将 OtherProject 导入当前工作区,您可以在两者上工作。
在提交之前,您必须将依赖项恢复为 Ivy2 规范。
关于scala - 使用 IntelliJ 处理多个相互依赖的 SBT 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44061456/