2014-10-04 102 views
21

我将一个SBT项目导入Intellij 13.1。如何阻止Intellij自动运行SBT

每当我更改build.sbt,plugins.sbt等时,Intellij会重新运行SBT。

有时候,这很好,但是当我在控制台中做了很多事情,并且频繁更改之后,我必须等待,因为我的IDE锁定了SBT运行(并且SBT很慢)。

无论如何,我可以关闭Intellij中的自动SBT运行。我希望自己从提供的SBT窗口中完成。

回答

16

IntelliJ 14.1现在允许您在导入项目后调整SBT设置。

文件>设置>生成>生成工具> SBT (或单击SBT项目面板上的设置按钮。)

取消选中 “自动导入”。

enter image description here

这是用户友好相当于david.perez的答案的。

+0

他们似乎放弃了对IDEA-2017.1的支持。很遗憾,这非常有用。当你真的完成迭代时,你可以刷新结构。除非你自己做,否则一个工作项目不会中断。 – VasyaNovikov 2017-04-10 12:49:08

0

这并不能完全解决这个问题,但我发现从IntelliJ项目中删除所有target/目录有很多帮助,并大大减少了常春藤锁的等待时间。

对于所有target/目录,右键单击,标记目录为,排除。如果您使用的是sbt子项目,那么您将拥有多个(否则,只有一个)。

来源:https://twitter.com/andstuff/status/516987670170697728

相关的问题:How to stop auto-refreshing of SBT modules upon opening project in IDEA?,建议升级到IDEA 14预览版本。

18

我会在导入SBT项目时不选中自动导入复选框。

这样,它不会自动刷新,必须手工完成。

为了改变它,它已经被导入后,您可以通过手工编辑.idea/sbt.xml file

<project version="4"> 
    <component name="ScalaSbtSettings"> 
    <option name="linkedExternalProjectsSettings"> 
     <SbtProjectSettings> 
     <option name="externalProjectPath" value="$PROJECT_DIR$" /> 
     <option name="jdk" value="1.7" /> 
     <option name="resolveClassifiers" value="true" /> 
     <option name="useAutoImport" value="true" /> 
     </SbtProjectSettings> 
    </option> 
    </component> 
</project> 

,改变useAutoImport设置。 如有必要,请重新启动IDEA。

UPDATE:同样在设置页面中,搜索SBT,在那里可以启用或禁用自动导入SBT文件。

在对.sbt文件进行繁重工作时,我禁用自动导入。

+0

resolveClassifiers是否负责下载源和文档的依赖性? – Yar 2015-01-28 05:29:34

+0

太棒了!出于某种原因,我很难找到这个设置。 – akauppi 2015-11-27 13:20:34

0

以前的答案都没有明确的Mac说明。

在Mac上的工作流程是IntellJ IDEA>首选项>构建,执行,部署>生成工具> SBT>使用自动导入

Mac Version 16 SBT

+0

...已经过时了。就我所知,没有像2017.1这样的设置。 – VasyaNovikov 2017-04-10 12:50:04

+0

如果我打开了一个SBT项目,它会显示给我 – 2017-04-10 13:09:27

+0

我通常会看到这些设置,但其中没有“使用自动导入”复选框。对于我最近升级到的2017.01 IDE版本。你有2017.01吗? – VasyaNovikov 2017-04-10 13:33:46

10

在2017年的IntelliJ。1和更高版本,您打开右侧边栏上的SBT projects窗口,右键单击项目名称,并取消选中Auto-import选项