【问题标题】:IntelliJ Add a Scala subproject in a nested directoryIntelliJ 在嵌套目录中添加 Scala 子项目
【发布时间】:2018-09-16 22:56:53
【问题描述】:

我有一个包含多个子项目的仓库,如下所示:

my-project
├── .idea
├── backend
│   │── build.sbt 
│   │── src
│   └── ... other Scala subproject files
├── client
│   │── package.json
│   │── webpack.config.js
│   └── ... other JS subproject files
├── worker
│   └── ... other Python subproject files
├── Makefile
└── docker-compose.yml

使用 IntelliJ IDEA Ultimate,我希望在同一个窗口中打开整个 repo,将 ./backend 作为“子项目”导入,并能够安装所有 sbt 依赖项。我该怎么做?

如果我将./backend 作为单独的项目打开,IntelliJ 会正确导入所有内容,从build.sbt 文件中定义大量库和模块,如果我更改build.sbt,还会重新导入它们。

但对于共享项目,它不会导入任何内容。如果我在Project Structure -> Modules 中手动从./backend 导入一个sbt 项目,它无论如何都会切换到根目录并且不会导入库。我可以获得主库和我自己的文件的语法突出显示和自动完成功能,但是来自build.sbt 的包丢失了。

【问题讨论】:

  • “它切换到根目录”是什么意思?请注意,如果 sbt 项目根目录与 IntelliJ 项目根目录不同,则当前使用 sbt shell 进行构建/导入将不起作用,但禁用 sbt shell 选项时,它应该在您作为模块导入时起作用。

标签: scala intellij-idea sbt


【解决方案1】:

您可以在根文件夹中创建一个虚拟根 sbt 项目,在那里创建一个单独的 build.sbt 并使用 backend 作为子项目:

lazy val backend = (project in file("backend"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 2020-06-17
    • 2018-01-12
    • 2013-09-13
    相关资源
    最近更新 更多