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
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
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.
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)
De sparkour:
addSbtPlugin ("com.eed3si9n"% "sbt-Assembly"% "0.14.4") avec Assembly.plugin fonctionne
A rencontré la même erreur. La raison était que je l'exécutais à partir du mauvais dossier cible