私は 公式ドキュメント に従って私のsbtプロジェクトにプラグインを設定しました:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
を~/.sbt/plugins/plugins.sbt
ファイルに追加cd
edをプロジェクトに送信して実行したsbt
Eclipse
と入力しますそこで私は次のエラーに直面しました。
> Eclipse
[error] Not a valid command: Eclipse (similar: help, alias)
[error] Not a valid project ID: Eclipse (similar: sbteclipse)
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: Eclipse (similar: deliver, licenses, clean)
[error] Eclipse
[error] ^
何が欠けていますか?
どうぞよろしくお願いいたします。
$ /opt/sbt-0.13.5/bin/sbt
[warn] The global sbt directory is now versioned and is located at /Users/first.last/.sbt/0.13.
[warn] You are seeing this warning because there is global configuration in /Users/first.last/.sbt but not in /Users/first.last/.sbt/0.13.
[warn] The global sbt directory may be changed via the sbt.global.base system property.
[info] Loading project definition from /Users/first.last/git/myproject/project
[info] Set current project to myproject (in build file:/Users/first.last/git/myproject/)
> Eclipse
[error] Not a valid command: Eclipse (similar: help, alias)
[error] Not a valid project ID: Eclipse
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: Eclipse (similar: deliver, licenses, clean)
[error] Eclipse
[error] ^
私はsbt 0.13.5を使っています。
$ sbt --version
sbt launcher version 0.13.5
空ディレクトリで実行されたsbt about
ビルド/ sbtセットアップを確認します。
$ sbt about
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
[info] This is sbt 0.13.5
[info] The current project is {file:/Users/jacek/sandbox/sbteclipse/}sbteclipse 0.1-SNAPSHOT
[info] The current project is built against Scala 2.10.4
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, net.virtualvoid.sbt.graph.Plugin, com.timushev.sbt.updates.UpdatesPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4
ディレクトリにファイルはありません(target
は起動時にsbtによって自動的に作成され、いつでも削除できるため無視してください)。
$ tree
.
`-- target
1 directory, 0 files
次に、sbt
を使用してsbtシェルを実行し、Eclipse
コマンドが存在しないことを確認しました。
$ sbt
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
> Eclipse
[error] Not a valid command: Eclipse (similar: help, alias)
[error] Not a valid project ID: Eclipse (similar: sbteclipse)
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: Eclipse (similar: deliver, licenses, clean)
[error] Eclipse
[error] ^
あなたの問題を再現できました。プラグインの設定に移ります-私はしましたnot sbtシェルを閉じます。
ドキュメントに従って密接に開いた~/.sbt/0.13/plugins/plugins.sbt
次のようにしてください:
$ cat ~/.sbt/0.13/plugins/plugins.sbt
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
ファイルにプラグインを入れて、変更をロードするためにsbt Shellでreload
を起動しました。
> reload
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
> Eclipse
[info] About to create Eclipse project files for your project(s).
[info] Updating {file:/Users/jacek/sandbox/sbteclipse/}sbteclipse...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Successfully created Eclipse project files for project(s):
[info] sbteclipse
ご覧のように、プラグインは正しくロードされ、ファイルを生成しました。手順に従ってください。問題なくプラグインがインストールされているはずです。
Sbt 0.13以降の場合
プラグイン定義ファイルにsbteclipseを追加します。次のいずれかを使用できます。
〜/ .sbt/0.13/plugins/plugins.sbt)のグローバルファイル(バージョン0.13以降用
PROJECT_DIR/project/plugins.sbtにあるプロジェクト固有のファイル
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
2〜4行目の警告は、プラグインフォルダーを~/.sbt/plugins/plugins.sbt
から~/.sbt/0.13/plugins/plugins.sbt
に移動するように指示しています。
Eclipseにはsbtプラグインはありませんが、sbtにはEclipseプラグインがあります
これは回避策ですが、適切な解決策ではありません。
つまり、Eclipseは、pom.xmlまたはbuild.gradleの場合とは異なり、build.sbtを理解しないため、ビルドでEclipseプロジェクトの依存関係を変更するとします。 sbtファイル、Eclipseはそれを理解せず、プロジェクトの依存関係の依存関係を変更しません。依存関係を変更するたびに、以下の手順を実行する必要があります。
回避策は次のとおりです(私はwindowsを使用しました)
Step1:sbtを https://www.scala-sbt.org/release/docs/Setup.html からダウンロードしてインストールします= Windowsの場合はかなり単純です https://piccolo.link/sbt-1.2.8.msi かなり単純です
Step2:D:\ sbt\Edgeと言うフォルダを作成しますここにbuild.sbtファイルを作成します次の内容をコンテンツとして使用でき、それに応じて変更します
name := "Edge"
version := "0.1"
scalaVersion := "2.11.8"
val sparkVersion="2.4.0"
libraryDependencies ++= Seq(
"org.Apache.spark" %% "spark-core" % sparkVersion,
"org.Apache.spark" %% "spark-sql" % sparkVersion,
"org.Apache.spark" %% "spark-mllib" % sparkVersion % "runtime",
"org.Apache.spark" %% "spark-streaming" % sparkVersion % "provided",
"org.Apache.spark" %% "spark-Hive" % sparkVersion % "provided",
"org.Apache.spark" %% "spark-catalyst" % sparkVersion % Test,
"org.Apache.spark" %% "spark-graphx" % sparkVersion,
"org.Apache.spark" %% "spark-repl" % sparkVersion % "provided",
"org.Apache.spark" %% "spark-yarn" % sparkVersion,
"org.Apache.spark" %% "spark-mllib-local" % sparkVersion,
//"org.Apache.spark" %% "spark-streaming-kafka" % "1.6.3",
//"org.Apache.spark" %% "spark-streaming-Twitter" % "1.6.3",
"ch.qos.logback" % "logback-classic" % "1.1.3"
)
これらのネストされたフォルダsrcおよびmainを次のように作成します-> D:\ sbt\spark\src\main
Step3:CMD/PowerShellを開き、D:\ sbt\Edge run "sbt package"に移動します
Step4:urホームディレクトリの.sbt内と、私の場合C:\ Users\xxxx.sbt\1.0 \の正しいバージョンのプラグインフォルダーに移動します。 plugins.sbtファイルが既にある場合は、次の行を追加しますaddSbtPlugin( "com.typesafe.sbteclipse"% "sbteclipse-plugin"% "5.2.4")そうでない場合は、行を作成して追加します。
Step5:CMD/PowerShellに戻り、sbt Eclipseを実行します。 Eclipseプロジェクトに必要なファイルを作成します。 ステップ6:Eclipseワークスペースを開き、このプロジェクトを既存のプロジェクトとしてインポートします。
ソリューション
元のドキュメント を使用して、最新のsbt
(私の場合はsbt-0.13.9-1.noarch
)に更新するだけです(私の場合はF23の場合):
curl https://bintray.com/sbt/rpm/rpm \
| Sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo
Sudo yum install --best --allowerasing sbt
そして、プロジェクトディレクトリから再試行します(最初に依存関係を取得するまでに約10分かかりました)。
sbt Eclipse
元の問題
(少なくとも)Linuxでは(少なくとも)sbt-0.13.1
の問題のようです。
Linux F23でデフォルトのパッケージを使用しました:
scala-2.10.4-8.fc23.noarch
Java-1.8.0-openjdk-1.8.0.91-6.b14.fc23.x86_64
sbt-0.13.1-8.fc23.noarch
そして、no順列(~/.sbt/plugins/plugins.sbt
、~/.sbt/0.13/plugins/plugins.sbt
、PROJECT_DIR/project/plugins.sbt
、...)構成オプションが機能しました。
scala Eclipseでsbtプロジェクトを作成するには、いくつかのことをする必要があります: