web-dev-qa-db-ja.com

キーが衝突するためにsbtプロジェクトをインポートできない奇妙なsbtバグ

IntelliJでbuild.sbtファイルを変更すると、この奇妙なエラーレポートが表示され、「キー」(これらのキーが何かさえわかりません)が自分自身と衝突しているように見えます。このエラーメッセージを調べると、キーの衝突を避けるためにライブラリメンテナーにキーのプレフィックスを要求するgithubプルリクエストのみが見つかります。これらの組み込みIntelliJキーはどのように衝突しますか?意味がない。スタックトレースからの抜粋を次に示します。

Java.lang.RuntimeException: Some keys were defined with the same name but different types: 
'ssExtractBuild' (sbt.Task[org.jetbrains.sbt.structure.BuildData], sbt.Task[org.jetbrains.sbt.structure.BuildData]), 
'settingData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.SettingData]]), 
'taskData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.TaskData]]), 
'extractStructure' (sbt.Task[org.jetbrains.sbt.structure.StructureData], sbt.Task[org.jetbrains.sbt.structure.StructureData]), 
'ssExtractDependencies' (sbt.Task[org.jetbrains.sbt.structure.DependencyData], sbt.Task[org.jetbrains.sbt.structure.DependencyData]), 
'ssExtractProjects' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractAndroid' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.AndroidData]]), 
'ssExtractRepository' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.RepositoryData]]), 
'ssOptions' (org.jetbrains.sbt.Options, org.jetbrains.sbt.Options), 
'commandData' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.CommandData]]), 
'ssExtractProject' (sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]], sbt.Task[scala.collection.Seq[org.jetbrains.sbt.structure.ProjectData]]), 
'ssExtractPlay2' (sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]], sbt.Task[scala.Option[org.jetbrains.sbt.structure.Play2Data]])

そして、完全なスタックトレースは次のとおりです。 https://Pastebin.com/ymZvgMCj

これは、build.sbtに依存関係を追加した後に発生しました。最初はそれが問題だと思い、それを削除しようとしましたが、私のbuild.sbtは以前の状態でも動作しません! intellijのキャッシュをクリアし、再起動し、そのプロジェクトの.ideaフォルダーを完全に削除し、プロジェクト全体をintellijに再インポートしましたが、まだ同じ問題があります。前回build.sbtを変更してから、このようにプロジェクトが中断されるまでに何が起こりましたか?

34
K. M

私も同じ問題を抱えていました。IntelliJを削除して再インストールすることで「修正」しました。

Intellijバージョン:IntelliJ IDEA 2017.2.5 Build#IU-172.4343.14 Scalaプラグインバージョン:2017.2.13

動作しなかったステップ

  • Gitブランチの切り替え
  • キャッシュの無効化/再起動
  • .ideaディレクトリの削除と再インポート
  • バンドルされたjarを使用しないようにSBT構成を変更する
3
rahilb

に行く

Preference -> Build, Execution, Deployment 
                  -> SBT 
                      -> check "Use SBT Shell for build and import" 
                           -> Press OK

これで、SBTプロジェクトを更新でき、動作するはずです。必要に応じて、「ビルドとインポートにSBTシェルを使用する」のチェックを外すこともできます。

90
feleio

Ideaの最新の2017.3 EAPバージョンでも同じエラーが発生していました。プロジェクトをインポートできず、同じエラーが発生しました。私にとっての修正は、別のブランチに切り替え、プロジェクトをインポートし(成功)、元のブランチに再び切り替えて、Ideaでプロジェクトを再インポートすることでした(sbt更新ボタンをクリックします)。

アイデアでのみ、端末でsbtを実行しても問題はありませんでした。アイデアの問題のように聞こえます...

2
Allan

私の場合、pythonモジュール。

Sbt Shellを使用しても問題は解決しませんでした。キャッシュの無効化と再起動も役に立たなかった。

project/.ideaフォルダー内のsbt.xmlを削除するにします。

これにより、現在のsbt設定が消去されます。 sbtがまったく機能していなかったため、入札取引ではありません。

1
Douglas Liu

Intellij Ideaを使用してSparkを開発したときにもこの問題が発生し、「ファイル->設定->ビルドツール-> sbt->グループモジュール」を「修飾された名前」

「ファイル->設定->ビルドツール-> sbt->ビルドとインポートにsbtシェルを使用」を選択します。

1
user9547302

私はこれを今日経験しましたが、これらのことを試しましたが、それは修正しませんでした:

  • ビルドとインポートにSBTシェルを使用(SBT設定)
  • キャッシュを無効にして再起動する

しかし、問題は最終的にDID私がこれをやったときに消えます:

  • SBTの最大ヒープサイズを6000に増やします(5000でした)
0
Jim McCabe

今日も同じ問題がありました。私の修正は:

  • キャッシュを無効にします
  • intellijを閉じる
  • .ideaを削除
  • インポートプロジェクト