web-dev-qa-db-fra.com

commande sbt Assembly introuvable

J'essaie de faire fonctionner sbt Assembly. Selon https://github.com/sbt/sbt-Assembly , pour sbt 0.13.6+ (je suis sur 0.13.7), cela devrait être inclus automatiquement pour tout ce qui concerne JvmPlugin. Selon sbt plugins, javmPlugin est activé dans root. Lorsque je lance sbt Assembly, le message "Commamdn: Assembly" n'est pas valide. J'ai essayé d'utiliser d'anciennes méthodes pour inclure sbt-Assembly avec tous les types de configurations sbt, mais aucune ne semble fonctionner. Voici à quoi ressemblent mes fichiers de compilation (le paquet sbt fonctionne très bien)

Assembly.sbt

addSbtPlugin("com.eed3si8n" % "sbt-Assembly" % "0.13.0")

build.sbt

lazy val commonSettings = Seq(
  organization := "com.test",
  version := "1.0",
  scalaVersion := "2.10.4"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "test",

    resolvers ++= Seq(
      ...
    ),

    libraryDependencies ++= Seq(
      ...
    )
)

Voici l'erreur:

[error] Not a valid command: Assembly
[error] Not a valid project ID: Assembly
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: Assembly
[error] Assembly
[error]     

Des idées? Fonctionne sous Linux. Merci

29

Avez-vous créé un Assembly.sbt à la racine de votre projet? A côté de votre build.sbt?

Si oui, alors c'est le problème. Vous voulez l'avoir dans le répertoire project.

Cela fait, la boîte a fonctionné comme prévu avec le reste de votre configuration:

> Assembly
[info] Including: scala-library.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy 'discard' was applied to a file
[info] SHA-1: 1ae0d7a9c433e439e81ce947659bf05aa62a2892
[info] Packaging /Users/dnw/Desktop/t-2015-04-08.2340/target/scala-2.10/test-Assembly-1.0.jar ...
[info] Done packaging.
[success] Total time: 2 s, completed 08-Apr-2015 23:45:59
27
Dale Wijnand
lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    assemblySettings ++ Seq(
    jarName in Assembly := "roobricks-spark.jar",
    test in Assembly := {}
  ).
  enablePlugins(AssemblyPlugin)

pouvez-vous une fois avec cela.

2
Sandeep Purohit

Depuis l'introduction des plugins automatiques dans 0.13.5, l'ajout de fichiers .sbt explicites pour les plugins (sauf dans des cas spécifiques où le plugin n'implémente pas le trait auto-plugin) n'est pas recommandé par sbt documentation

Ajoutez la addSbtPlugin("com.eed3si8n" % "sbt-Assembly" % "0.13.0") à plugins.sbt sous le répertoire project et supprimez Assembly.sbt. si vous voyez toujours l'erreur, activez explicitement le plugin dans le build.sbt: 

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "test",
  ).
  enablePlugins(AssemblyPlugin)
2
Dexter Legaspi

De sparkour:

addSbtPlugin ("com.eed3si9n"% "sbt-Assembly"% "0.14.4") avec Assembly.plugin fonctionne

0
thebluephantom

A rencontré la même erreur. La raison était que je l'exécutais à partir du mauvais dossier cible

0
binshi