web-dev-qa-db-ja.com

IntelliJがsbtプロジェクトをインポートできない

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) 
53
radumanolescu

こちらの情報に従って同期の問題を解決しました: https://youtrack.jetbrains.com/issue/SCL-13024

重要な情報は、「sbtは、まったく利用できないsbtプラグインの「ソース」と「ドキュメント」を再解決しようとしているようです。「ライブラリソース」と「sbtソース」をダウンロードするプロパティが無効になっている場合、構造をダンプすると、「永久」から1分未満に短縮されます。」

つまり、IntelliJ IDEAで、IDEA設定のビルドツールsbtの[プロジェクトレベル設定]の下にある[ライブラリソース]チェックボックスをオフにします。以下の画像に示すように:

enter image description here

59
civic.LiLister

これを回避できる唯一の方法は、最初にSBT console/cmd行でsbt clean compileを実行してから、IntelliJでSBTプロジェクトを更新することでした。

12
JPotts

私はIntelliJ Idea CE 2017.3でこの作業を行う方法を見つけていないので、CE 2017.2.5に戻りました

6
radumanolescu

IntelliJは、すでに遅いsbt updateの効率を制限しているようです。代わりに sbt-coursier を使用することをお勧めします。依存関係の更新時間を改善するために特別に書かれたもので、私が関与しているある大規模なプロジェクトでは、依存関係の更新時間を約2桁改善しました。

  1. IntelliJが自動的にインポートを自動更新しないようにするには、Preferences > Build, Execution, Deployment > Build Tools > sbtの「Use auto-import」をオフにします

enter image description here

  1. addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3")をプロジェクトのbuild.sbtファイルに追加します
    • または、~/.sbt/1.0/plugins/build.sbtにグローバルにインストールします
  2. コマンドラインで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 をご覧ください。

  1. (オプション)後続のトランザクション依存関係の更新が高速になる可能性があるため、ステップ1から自動インポートを再度有効にします。
5
Cory Klein

私のために働いたのは、IntelliJ内のSBTのメモリを増やすことでした。私のMacの場合:設定->ビルド、実行、デポ-> sbtその後、「最大ヒープサイズ」を768MBから2048MBに変更すると、数分後にすべてが正常にインポートされました。

4
marios

同じ問題に遭遇しました!ディレクトリ〜/ .sbt/0.13を削除すると動作します。使用したsbtディレクトリを削除できます。

4
xiang liu

この問題の原因となる古いチェックアウトプロジェクトがありました。通常のrm -rf .idea +を再インポートしましたが、スタックし続けました。いろいろなことを試しましたが、最終的に修正されたとき、トップレベルのtargetフォルダーを削除するだけでなく、代わりに

find . -name target -type d -exec rm -rf {} \;

次のオープン/インポートは完璧に進みました。 (これは2018.1.5、2018.1.6、2018.2 RCでした。)

1
nibblonian

カスタムSBTバージョンが動作します。

IntelliJ IDEA Preferences-> Build、Execution、Deployment-> Build Tools-> sbt-> Launcher

カスタムを選択

custom sbt screenshot

1
Huang Zehai

私にとっては、単にuse sbt Shell for both build and importsをチェックするだけでうまくいきました。

1
orhaneee

「sbt sources」のチェックを外すだけでうまくいきました

0

私もこの問題に直面していました。以下の2つの構成がうまくいきました。私は多くの新しいsbtプロジェクトでこの設定を確認しようとしました。

(1)IDEAプリファレンスのビルドツールsbtの[プロジェクトレベル設定]で[ライブラリソース]のチェックを外します(2)[ファイル]> [設定]> [ビルド、実行]の-Dhttp.nonProxyHosts = "Host1 | Host2"オプション展開> sbt> VMパラメーター

0
Rohit
  • を押してIDEA内のターミナルを開きます AltF12 またはsbt Shellを使用します
  • sbtを実行します-初めての場合は時間がかかります。
  • cleanを実行します
  • compileを実行します-プロジェクトにある依存関係をダウンロードします。
  • IDEAプロジェクト(File-> Close Project)を閉じて、再度開きます。

注:画面の右下にインポートするように要求する場合はEnable auto-importをアクティブにし、有効のままにしたくない場合(私のように)Importを押し、同期をキャンセルしてからRefresh sbt projectを再度実行します。同期の途中でインポートを使用しようとすると、sbtからプロジェクト構造をダンプメッセージでスタックします。

Refresh sbt projectは、Build Syncウィンドウのこのコーナーにあります-以下で強調表示されます: Refresh sbt project

0
Marcio Tedesco

IntelliJを2017.3にアップグレードした後、同じ問題に苦しんでいますが、今は問題なく動作します。

IntelliJは、 'No proxy for'オプションをsbtに渡すことができなかったと思います。だから、私は追加しました

-Dhttp.nonProxyHosts = "Host1 | Host2"

File> Settings> Build、Excution、Deployment> sbt> VM parametersのオプション

0
Hsun