web-dev-qa-db-ja.com

sbt-Eclipseを使用してプロジェクトのEclipseプロジェクトファイルを作成する方法

私は 公式ドキュメント に従って私のsbtプロジェクトにプラグインを設定しました:

  1. addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")~/.sbt/plugins/plugins.sbtファイルに追加
  2. cdedをプロジェクトに送信して実行したsbt
  3. Sbt Shellで、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]        ^
17
Classified

私は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

ご覧のように、プラグインは正しくロードされ、ファイルを生成しました。手順に従ってください。問題なくプラグインがインストールされているはずです。

23
Jacek Laskowski

Sbt 0.13以降の場合

プラグイン定義ファイルにsbteclipseを追加します。次のいずれかを使用できます。

  1. 〜/ .sbt/0.13/plugins/plugins.sbt)のグローバルファイル(バージョン0.13以降用

  2. PROJECT_DIR/project/plugins.sbtにあるプロジェクト固有のファイル

    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
    
5
zinking

2〜4行目の警告は、プラグインフォルダーを~/.sbt/plugins/plugins.sbtから~/.sbt/0.13/plugins/plugins.sbtに移動するように指示しています。

4
Karl Higley

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ワークスペースを開き、このプロジェクトを既存のプロジェクトとしてインポートします。

1
Koushik Paul

ソリューション

元のドキュメント を使用して、最新の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.sbtPROJECT_DIR/project/plugins.sbt、...)構成オプションが機能しました。

1
uvsmtid

scala Eclipseでsbtプロジェクトを作成するには、いくつかのことをする必要があります:

  1. 新しいプロジェクトを作成する
  2. プロジェクトにフォルダ構造を追加する
  3. ターミナルに移動し、cdコマンドでプロジェクトに移動します。
  4. sbtと入力すると、ダウンロードが開始され、その後
  5. プロジェクトに移動して、プロジェクトフォルダが作成されているかどうかを確認します
  6. そのフォルダーの下にplugin.sbtを作成し、sbtを追加します(addSbtPlugin( "com.typesafe.play"% "sbt-plugin"% "2.6.13")addSbtPlugin( "com.typesafe.sbteclipse"% "sbteclipse-plugin"% " 5.2.4インチ)
  7. 次に、ターミナルに移動して「compile den Eclipse」と入力します
  8. 完了しました。成功メッセージが表示されます
0
v_d123

私はsbt 0.13.13を使用していますが、以下の手順を使用してsbtecipseをアップロードしました。プロジェクトに移動します。下 - enter image description here

次に、コマンドプロンプトからプロジェクトフォルダに移動し、sbt

0