在Intellij-Idea中没有正确加载SBT(没有SBT外部进口)

时间:2018-04-10 21:55:24

标签: macos scala intellij-idea sbt

我遇到的问题是使用我的.sbt文件中的导入时我的特定scala项目。我期望发生的是当我通过选择

打开我的项目
  

打开>新项目>选择我的SBT

是我的依赖项按照惯例加载,我的SBT文件中的所有大纲都可以在项目的外部库中找到。

当我导入项目时,系统会提示我更新SBT,它表示它更新所有内容并从SBT源中提取,但实际上它实际上并不反映任何导入的项目(这也将我的build.sbt文件保留到有红色下划线项,因为这些库尚未导入。)

外部库的示例:

external libraries

来自build.sbt的示例:

build.sbt

我已经卸载,重新安装了IntelliJ和所有插件,删除了我的SBT项目,再次添加它们,重新启动,冲洗重复直至无限。

我还打开了SBT工具窗口并刷新了SBT,并从列表中删除了所有内容并再次添加,但没有成功。

有了这个,我还删除了生成的.idea文件,并使用多个不同的设置多次重新导入项目。 (每当我尝试新的东西时删除.idea文件。)

我已经在同事的机器上测试了完全相同的项目,并且有工作结果,所以我不确定是否有任何错误的配置。我们比较但是一切看起来完全一样。

在终端中清理,编译和运行SBT 100% - 当我创建一个新的Scala项目时,这个问题不会持续存在。 Theres也没有错误输出,这真是令人沮丧。

我已通过以下测试:

  

IntelliJ IDEA 2018.1.1(终极版)

     

Build#IU-181.4445.20,建于2018年4月2日

     

JRE:1.8.0_152-release-1136-b27 x86_64

     

JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

     

macOS 10.13.3

     

Scala插件2018.1.8

     

scala v2.12.4

     

SBT 1.1.1

**编辑 为了提供更多信息,当我有一个简单的build.sbt文件(也就是我给它一个scala版本,一个名称和一些库依赖项)时,它完全正常。

当我开始在根目录下添加不同的聚合时,它似乎停止识别这些模块。

举个例子,我有;

lazy val root = Project("scala-test", file("."))
  .aggregate(core)

如果我查看我的SBT侧面板,我会看到列出的所有内容:

enter image description here

但它们不属于我的项目结构,这意味着它无法识别任何内部导入或导入路径:

enter image description here

Scala插件似乎有问题,但我没有找到一个稳定的解决方案。

3 个答案:

答案 0 :(得分:2)

这对我有用。

cd <project-directory>

# only run this line if you haven't import project into intelij
mkdir -p .idea

touch .idea/sbt.xml

cat > .idea/sbt.xml << EOM
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
    <component name="ScalaSbtSettings">
        <option name="customVMPath" />
        <option name="linkedExternalProjectsSettings">
            <SbtProjectSettings>
                <option name="externalProjectPath" value="$PROJECT_DIR$" />
                <option name="modules">
                    <set>
                        <option value="$PROJECT_DIR$" />
                        <option value="$PROJECT_DIR$/project" />
                    </set>
                </option>
                <option name="sbtVersion" value="1.4.6" />
            </SbtProjectSettings>
        </option>
    </component>
</project>
EOM

我使用 sbt 版本 1.4.6 进行设置,但您可以根据自己的喜好随意更改。

完成以下操作后,在 intelij 中打开项目,然后在菜单栏下 View/Tool Windows sbt 将出现,当您打开 build.sbt 文件时,它将识别语法。

答案 1 :(得分:1)

您是否还删除了.idea文件夹并再次打开了该项目。

这在大多数情况下对我有帮助。

我只使用File -> Open...,然后选择包含build.sbt的目录。

这是我配置新项目的方式:

sbt project config

答案 2 :(得分:0)

从IntelliJ-Idea 2017.3升级到2018.1

时遇到了类似的问题

我的临时解决方案是恢复到2017版本。 我在他们的bug跟踪器中发现了这个错误,我认为这个错误与问题有关。 https://youtrack.jetbrains.com/issue/SCL-13600

您是否尝试使用旧版本或者找到更长久的解决方案?