2
如何使用SBT和IntelliJ IDEA管理多个相互依赖的模块?
我正在开发几个相互依赖的模块,并希望在一个IDEA项目中一起使用它们。我正在使用sbt-idea从sbt构建定义中生成IDEA项目,这对于单个项目非常有用。但是,在多模块的情况下,到目前为止,我已经尝试了一些事情: 使用sbt-idea分别为每个模块生成一个IDEA .iml文件;然后从头开始创建一个主IDEA项目,并向其中添加这些模块。这使得模块来源所有可编辑在同一窗口,但它们之间的依赖关系是不被跟踪(因此从内某些源试图导航FOO项目,在一些酒吧带我到的进口库版本吧,而不是本地资源)。 使用sbt多项目构建(又称子项目),其中父项目的Build.scala包含以下内容: lazy val foo = Project(id = "foo", base = file("foo")) lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo) 这几乎可以正常工作,因为sbt-idea生成一个主IDEA项目,并跟踪子项目之间的依赖关系。但是,有两个警告: 子项目必须位于主项目的子目录中(即file("../foo")不允许)是sbt的限制。这不是我真正想要的(如果在两个不同的主项目中使用模块(例如“ utils”或“ commons”包),该怎么办?)但我可以接受。 我的一个子项目有自己的子项目。我不确定sbt本身是否正确处理了这些嵌套项目,但是无论如何它们都被sbt-idea忽略。显然,我需要将嵌套子项目递归地包含在主项目中。 总结一下:我想将可能已经有子项目的模块收集到一个具有跟踪依赖项的大型IDEA项目中,以方便进行编辑。我该怎么做?谢谢!