2014-10-04 62 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選項