2015-04-08 10 views
21

Ich versuche, sbt Assembly zu starten. Nach https://github.com/sbt/sbt-assembly, für sbt 0.13.6+ (ich bin auf 0.13.7) sollte dies automatisch für alles mit dem JvmPlugin enthalten sein. Laut sbt plugins habe ich das JvmPlugin im root aktiviert. Wenn ich sbt assembly laufen lasse, erhalte ich "keine gültige commamdn: Versammlung". Ich habe versucht, alte Methoden der Einbeziehung von SBT-Assembly mit allen verschiedenen Arten von SBT-Konfigurationen, aber keiner scheint zu funktionieren. Hier ist, was meine Build-Dateien aussehen (Anmerkung sbt Paket funktioniert gut)sbt Assembly Befehl nicht gefunden

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(
     ... 
    ) 
) 

Hier ist der Fehler:

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

Irgendwelche Ideen? Unter Linux laufen. Danke

Antwort

22

Haben Sie eine assembly.sbt an der Wurzel Ihres Projekts erstellt? Neben Ihrer build.sbt?

Wenn ja, dann ist das das Problem. Sie möchten es im Verzeichnis project haben.

Nachdem dies erledigt, dass er die Box herausgearbeitet, wie mit dem Rest Ihres Setup erwartet:

> 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 
+0

ausführte, das funktionierte, danke! –

1

Seit der Einführung von Auto-Plugins in 0.13.5, explizite .sbt Dateien für Plug-In hinzugefügt (mit Ausnahme bestimmten Fälle, in denen das Plugin kein Auto-Plugin-Merkmal implementiert) wird nicht empfohlen unter sbt documentation.

In den addSbtPlugin("com.eed3si8n" % "sbt-assembly" % "0.13.0") zurück zu plugins.sbt unter project Verzeichnis und assembly.sbt entfernen. wenn Sie immer noch den Fehler zu sehen, aktivieren Sie explizit das Plugin im build.sbt:

lazy val root = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(
    name := "test", 
). 
    enablePlugins(AssemblyPlugin) 
2
lazy val root = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(
    assemblySettings ++ Seq(
    jarName in assembly := "roobricks-spark.jar", 
    test in assembly := {} 
). 
    enablePlugins(AssemblyPlugin) 

können Sie einmal mit diesem.

0

Von sparkour:

addSbtPlugin ("com.eed3si9n" % "sbt-assembly" % "0.14.4") mit assembly.plugin funktioniert

0

über den gleichen Fehler kam. Der Grund war, dass ich es vom falschen inneren Zielordner