2015-02-15 11 views
5

Ich habe multi-Projekt Build.scala. Gibt es eine Möglichkeit, alle von sbt-assembly generierten jars im Root-Zielverzeichnis zu platzieren?Benutzerdefinierte outputPath für sbt-assembly

Betrachten wir zum Beispiel die folgende:

lazy val root = Project("root", file(".")).aggregate(hello) 

lazy val hello = Project(id = "hello", base = file("hello")) 
    .settings(assemblySettings: _*) 

Wie ist, wenn ich sbt assembly laufen, hello.jar würde in hello/target/<scala-version>/ platziert werden. Ist es stattdessen möglich, es in /target/<scala-version>/ zu platzieren?

Ich weiß, es ist möglich, die OutputPath I indem Sie die folgende Einstellung festlegen möchten:

target in assembly := file("target/scala-2.11/") 

Gibt es eine Möglichkeit diese allgemeineren zu machen? Zum Beispiel ist es nicht notwendig, die scala-Version manuell anzugeben?

+0

Haben Sie eine Antwort gefunden? – allidoiswin

Antwort

6
assemblyOutputPath in assembly := file("yourpath") 
+0

Ich hatte ein Problem mit Pfad hier auf Mac. Also habe ich 'baseDirectory.value' verwendet und von dort navigierte ich zu dem erforderlichen Pfad, der relativ ist. Sonst nimmt es den Weg von zu Hause aus, der vielleicht nicht das ist, was Sie brauchen. –

+0

Gibt es trotzdem kann ich von der Kommandozeile aus angeben ?? z.B. 'sbt Assembly --assemblyOutputPath = Yourpath" '?? – pathikrit

+0

AssemblyOutputPath ist eigentlich weniger generisch als Ziel. Es ist buchstäblich target + assemblyJarName. Wie wird das upvoted? – allidoiswin