J'ai suivi la documentation officielle pour installer le plugin dans mon projet sbt:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
au fichier ~/.sbt/plugins/plugins.sbt
cd
ed à un projet et a exécuté sbt
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] ^
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.
Pour sbt 0,13 et plus
Ajoutez sbteclipse à votre fichier de définition de plugin. Vous pouvez utiliser soit:
le fichier global (pour les versions 0.13 et supérieures) à ~/.sbt/0.13/plugins/plugins.sbt
le fichier spécifique au projet dans PROJECT_DIR/project/plugins.sbt
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
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
.
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.
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.