我遇到的问题是使用我的.sbt文件中的导入时我的特定scala项目。我期望发生的是当我通过选择
打开我的项目打开>新项目>选择我的SBT
是我的依赖项按照惯例加载,我的SBT文件中的所有大纲都可以在项目的外部库中找到。
当我导入项目时,系统会提示我更新SBT,它表示它更新所有内容并从SBT源中提取,但实际上它实际上并不反映任何导入的项目(这也将我的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侧面板,我会看到列出的所有内容:
但它们不属于我的项目结构,这意味着它无法识别任何内部导入或导入路径:
Scala插件似乎有问题,但我没有找到一个稳定的解决方案。
答案 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)
答案 2 :(得分:0)
从IntelliJ-Idea 2017.3升级到2018.1
时遇到了类似的问题我的临时解决方案是恢复到2017版本。 我在他们的bug跟踪器中发现了这个错误,我认为这个错误与问题有关。 https://youtrack.jetbrains.com/issue/SCL-13600
您是否尝试使用旧版本或者找到更长久的解决方案?