[英]IntelliJ Cannot Import sbt Project
我已經將 IntelliJ 從 CE 2017.2.5 升級到 CE 2017.3 版,現在我無法構建我的 sbt 項目。 構建卡在第一步:
"Build: sync
MyProjName: syncing...
dump project structure from sbt"
我已經刪除了 .idea 目錄和MyProjName/project/target
目錄。 我從命令行做了一個 sbt 構建,它有效。 然后我再次啟動 IntelliJ 並嘗試將MyProjName/build.sbt
作為項目導入。 我也已注銷/登錄。 這樣做了幾次。 導入永遠不會超過這一步。
我在防火牆后面工作,但我檢查了我的代理設置,它們與以前的版本是正確的並且沒有變化(如果這很重要)。
我該如何解決/解決這個問題?
sbt 版本是 0.13.6。 Scala 插件 2017.3.10。
從日志:
IDE: IntelliJ IDEA (build #IC-173.3727.127, 27 Nov 2017 09:32)
OS: Windows 7 (6.1, amd64)
JRE: 1.8.0_152-release-1024-b6 (JetBrains s.r.o)
JVM: 25.152-b6 (OpenJDK 64-Bit Server VM)
我解決了以下信息的同步問題: https : //youtrack.jetbrains.com/issue/SCL-13024
關鍵信息是“似乎 sbt 正在嘗試重新解析根本不可用的 sbt 插件的‘源代碼’和‘文檔’。如果下載“庫源”和“sbt 源”的屬性被禁用,那么是時候轉儲結構從‘永遠’減少到不到 1 分鍾。”
即,在 IntelliJ IDEA 中,清除 IDEA 首選項中 Build Tools sbt 的“項目級別設置”下的“庫源”復選框。 如下圖所示:
我可以解決這個問題的唯一方法是sbt clean compile
在 SBT 控制台/cmd 行中運行sbt clean compile
,然后在 IntelliJ 中刷新 SBT 項目。
sbt
- 如果是第一次,則需要一些時間。clean
compile
- 它將下載您項目中的依賴項。File
-> Close Project
)並再次打開它。 注意:如果它要求在屏幕右下角Enable auto-import
,請激活Enable auto-import
,如果您不喜歡保持啟用狀態(像我一樣)按Import
,取消同步,然后再次Refresh sbt project
。 當您嘗試在同步過程中使用 import 時,它會被sbt消息中的轉儲項目結構卡住。
我還沒有找到在 IntelliJ Idea CE 2017.3 中完成這項工作的方法,所以我已經恢復到 CE 2017.2.5
IntelliJ 似乎限制了已經很慢的sbt update
的效率。 我建議改用sbt-coursier 。 它是專門為改進依賴項更新時間而編寫的,在我參與的一個大型項目中,將依賴項更新時間縮短了大約 2 個數量級。
Preferences > Build, Execution, Deployment > Build Tools > sbt
取消選中“使用自動導入”以防止 IntelliJ 自行自動更新導入addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3")
到項目的build.sbt
文件中
~/.sbt/1.0/plugins/build.sbt
sbt update
如果您看到[error] java.lang.NoClassDefFoundError: org/vafer/jdeb/Console
,則將以下內容添加到~/.sbt/1.0/sbt-coursier.sbt
。
import coursier.Keys._
classpathTypes += "maven-plugin"
有關該錯誤的更多信息,請參閱cousier issue #450 。
我也遇到了同樣的問題!我刪除目錄~/.sbt/0.13,然后就可以了。 您可以刪除您使用的 sbt 目錄。
對我有用的是在 IntelliJ 中增加 SBT 的內存。 在我的 Mac 上:首選項 -> 構建、執行、部署 -> sbt 然后將“最大堆大小”從 768MB 更改為 2048MB,然后幾分鍾后所有內容都成功導入。
自定義 SBT 版本對我有用。
IntelliJ IDEA Preferences -> Build,Execution,Deployment -> Build Tools -> sbt -> Launcher
選擇自定義
對我來說,只需檢查use sbt shell for both build and imports
。
有一個較舊的簽出項目導致此問題。 通常的rm -rf .idea
+ 重新導入,但它一直卡住。 嘗試了各種方法,但是當最終為我修復它時不僅僅是刪除頂級target
文件夾,而是執行
find . -name target -type d -exec rm -rf {} \;
下一次打開/導入完美無缺。 (這是 2018.1.5、2018.1.6 和 2018.2 RC。)
將 intelliJ 升級到 2017.3 后,我遇到了同樣的問題,但現在工作正常。
我認為 intelliJ 無法將“無代理”選項傳遞給 sbt。 所以,我補充說
-Dhttp.nonProxyHosts="host1|host2"
文件 > 設置 > 構建、執行、部署 > sbt > VM 參數中的選項
簡單地取消選中“sbt 來源”對我來說就成功了
我也面臨這個問題。 以下兩種配置對我有用。 我試圖在許多新的 sbt 項目中確認這個設置,因為它有效。
(1)在IDEA首選項(2)-Dhttp.nonProxyHosts="host1|host2"選項中的文件>設置>構建、執行、部署>sbt>VM參數中為Build Tools sbt取消選中“Project level settings”下的“Library sources”
我遇到了類似的問題,但發現它與等待鎖有關
可能如果殺掉IntelliJ IDEA沒有人會釋放lock文件,手動刪除locks文件后問題解決
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.