IntelliJ在嵌套目录中添加Scala子项目

IntelliJ在嵌套目录中添加Scala子项目,scala,intellij-idea,sbt,Scala,Intellij Idea,Sbt,我有一份包含多个子项目的回购协议,如下所示: my-project ├── .idea ├── backend │ │── build.sbt │ │── src │ └── ... other Scala subproject files ├── client │ │── package.json │ │── webpack.config.js │ └── ... other JS subproject files ├── worker │ └── ... oth

我有一份包含多个子项目的回购协议,如下所示:

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
,还会重新导入它们


但对于共享项目,它不会导入任何内容。如果我从
项目结构->模块
中的
/backend
手动导入sbt项目,它仍然会切换到根目录,并且不会导入库。我可以为主库和我自己的文件获取语法高亮显示和自动完成,但是
build.sbt
中的包丢失。

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

lazy val backend=(文件中的项目(“backend”)

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