web-dev-qa-db-fra.com

Comment utiliser sbt-Eclipse pour créer les fichiers de projet Eclipse d'un projet?

J'ai suivi la documentation officielle pour installer le plugin dans mon projet sbt:

  1. Ajout de addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0") au fichier ~/.sbt/plugins/plugins.sbt
  2. cded à un projet et a exécuté sbt
  3. Dans sbt Shell, tapez Eclipse

C'est là que j'ai rencontré l'erreur suivante:

> 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]        ^

Qu'est-ce que je rate?

Merci d'avance pour toute aide que vous pouvez me donner.

$ /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]        ^
15
Classified

J'utilise sbt 0.13.5.

$ sbt --version
sbt launcher version 0.13.5

Dans un empty répertoire exécuté sbt about pour vérifier la configuration de build/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

Aucun fichier ne se trouve dans le répertoire (ignore target car il est automatiquement créé par sbt au démarrage et peut être supprimé à tout moment).

$ tree
.
`-- target

1 directory, 0 files

J'ai ensuite exécuté le shell sbt avec sbt pour m'assurer qu'aucune commande Eclipse n'existait.

$ 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]        ^

Je pourrais reproduire votre problème. Passons maintenant à la configuration du plugin - je l’ai fait not / fermez le sbt Shell.

En suivant la documentation étroitement j'ai ouvert ~/.sbt/0.13/plugins/plugins.sbt pour l’avoir comme suit:

$ cat ~/.sbt/0.13/plugins/plugins.sbt
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")

Avec le plugin dans le fichier, j'ai viré reload dans le shell sbt pour charger les modifications.

> 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

Comme vous pouvez le constater, le plug-in a été correctement chargé et a généré les fichiers. Suivez les étapes et le plugin devrait être installé sans aucun problème.

23
Jacek Laskowski

Pour sbt 0,13 et plus

Ajoutez sbteclipse à votre fichier de définition de plugin. Vous pouvez utiliser soit:

  1. le fichier global (pour les versions 0.13 et supérieures) à ~/.sbt/0.13/plugins/plugins.sbt

  2. le fichier spécifique au projet dans PROJECT_DIR/project/plugins.sbt

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

L’avertissement des lignes 2 à 4 vous indique de déplacer votre dossier de plugins de ~/.sbt/plugins/plugins.sbt à ~/.sbt/0.13/plugins/plugins.sbt.

4
Karl Higley

Eclipse ne possède pas de plug-in sbt, bien que sbt dispose d'un plugin Eclipse

ce qui est une solution de contournement mais pas appropriée.

ce qui signifie Eclipse ne comprend pas build.sbt comme il le fait pour pom.xml ou build.gradle . Par conséquent, si nous modifions une dépendance dans notre projet Eclipse dans le fichier build.sbt, Eclipse ne comprendra pas. Cela ne changera pas la dépendance dans les dépendances du projet. Vous devez donc suivre les étapes ci-dessous à chaque fois que vous modifiez une dépendance.

La solution de contournement est la suivante (j'ai utilisé windows

Étape 1: Téléchargez et installez sbt à partir de https://www.scala-sbt.org/release/docs/Setup.html Pour Windows, il est assez simple https://piccolo.link/sbt-1.2.8.msi assez simple

Etape 2: Créez un dossier disant: D:\sbt\Edge Créez maintenant un fichier build.sbt ici Vous pouvez utiliser le texte suivant comme contenu, le modifier en conséquence

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"
)

maintenant, créez ces dossiers imbriqués src et main comme -> D:\sbt\spark\src\main

Étape 3: Ouvrez CMD/PowerShell, accédez à D:\sbt\Edge , Exécutez "paquet sbt"

Step4: Allez dans .sbt dans votre répertoire personnel et dans le dossier plugins de la version correcte dans mon cas, C:\Users\xxxx.sbt\1.0\plugins Si vous avez un plugin. fichier sbt déjà, ajoutez la ligne suivante addSbtPlugin ("com.typesafe.sbteclipse"% "sbteclipse-plugin"% "5.2.4") sinon, créez et ajoutez la ligne.

Étape 5: Retournez à CMD/PowerShell, exécutez sbt Eclipse. Il créera les fichiers nécessaires au projet Eclipse. Step6: Ouvrez un espace de travail Eclipse et importez ce projet en tant que projet existant. 

1
Koushik Paul

Solution

Mettez simplement à jour la dernière sbt (sbt-0.13.9-1.noarch dans mon cas) en utilisant la documentation d'origine (pour F23 dans mon cas):

curl https://bintray.com/sbt/rpm/rpm \
  | Sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo

Sudo yum install --best --allowerasing sbt

Et réessayez dans le répertoire du projet (il a fallu environ 10 minutes pour obtenir les dépendances la première fois):

sbt Eclipse

Problème d'origine

Cela ressemble à un problème de (au moins) sbt-0.13.1 sur (au moins) Linux.

J'ai utilisé des packages par défaut sur 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

Et no permutations (~/.sbt/plugins/plugins.sbt, ~/.sbt/0.13/plugins/plugins.sbt, PROJECT_DIR/project/plugins.sbt, ...) avec les options de configuration utilisées.

1
uvsmtid

J'utilise sbt 0.13.13 et j'ai utilisé les étapes ci-dessous pour télécharger sbtecipse. ALLEZ vers votre projet. Sous  enter image description here

Et puis allez dans le dossier du projet à partir de la commande Invite et sbt

0