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設定のビルドツールsbtの[プロジェクトレベル設定]の下にある[ライブラリソース]チェックボックスをオフにします。以下の画像に示すように:
これを回避できる唯一の方法は、最初にSBT console/cmd行でsbt clean compile
を実行してから、IntelliJでSBTプロジェクトを更新することでした。
私はIntelliJ Idea CE 2017.3でこの作業を行う方法を見つけていないので、CE 2017.2.5に戻りました
IntelliJは、すでに遅いsbt update
の効率を制限しているようです。代わりに sbt-coursier を使用することをお勧めします。依存関係の更新時間を改善するために特別に書かれたもので、私が関与しているある大規模なプロジェクトでは、依存関係の更新時間を約2桁改善しました。
Preferences > Build, Execution, Deployment > Build Tools > sbt
の「Use auto-import」をオフにします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"
このエラーの詳細については、 coursier issue#45 をご覧ください。
私のために働いたのは、IntelliJ内のSBTのメモリを増やすことでした。私のMacの場合:設定->ビルド、実行、デポ-> sbtその後、「最大ヒープサイズ」を768MBから2048MBに変更すると、数分後にすべてが正常にインポートされました。
同じ問題に遭遇しました!ディレクトリ〜/ .sbt/0.13を削除すると動作します。使用したsbtディレクトリを削除できます。
この問題の原因となる古いチェックアウトプロジェクトがありました。通常のrm -rf .idea
+を再インポートしましたが、スタックし続けました。いろいろなことを試しましたが、最終的に修正されたとき、トップレベルのtarget
フォルダーを削除するだけでなく、代わりに
find . -name target -type d -exec rm -rf {} \;
次のオープン/インポートは完璧に進みました。 (これは2018.1.5、2018.1.6、2018.2 RCでした。)
カスタムSBTバージョンが動作します。
IntelliJ IDEA Preferences-> Build、Execution、Deployment-> Build Tools-> sbt-> Launcher
カスタムを選択
私にとっては、単にuse sbt Shell for both build and imports
をチェックするだけでうまくいきました。
「sbt sources」のチェックを外すだけでうまくいきました
私もこの問題に直面していました。以下の2つの構成がうまくいきました。私は多くの新しいsbtプロジェクトでこの設定を確認しようとしました。
(1)IDEAプリファレンスのビルドツールsbtの[プロジェクトレベル設定]で[ライブラリソース]のチェックを外します(2)[ファイル]> [設定]> [ビルド、実行]の-Dhttp.nonProxyHosts = "Host1 | Host2"オプション展開> sbt> VMパラメーター
sbt
を実行します-初めての場合は時間がかかります。clean
を実行しますcompile
を実行します-プロジェクトにある依存関係をダウンロードします。File
-> Close Project
)を閉じて、再度開きます。注:画面の右下にインポートするように要求する場合はEnable auto-import
をアクティブにし、有効のままにしたくない場合(私のように)Import
を押し、同期をキャンセルしてからRefresh sbt project
を再度実行します。同期の途中でインポートを使用しようとすると、sbtからプロジェクト構造をダンプメッセージでスタックします。
Refresh sbt project
は、Build Syncウィンドウのこのコーナーにあります-以下で強調表示されます:
IntelliJを2017.3にアップグレードした後、同じ問題に苦しんでいますが、今は問題なく動作します。
IntelliJは、 'No proxy for'オプションをsbtに渡すことができなかったと思います。だから、私は追加しました
-Dhttp.nonProxyHosts = "Host1 | Host2"
File> Settings> Build、Excution、Deployment> sbt> VM parametersのオプション