Wenn Sie App JAR-Datei und Ihre dependecy JAR-Dateien, hier trennen wollen, ist die praktischste Methode i mit sbt gefunden;
erstellen Projekt/plugins.sbt Datei, wenn nicht folgende Zeile vorhanden ist und fügen:
addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.8.0")
Nachdem Sie die Zeile Ihr Projekt aktualisieren. Hinweis: Die Plugin-Version könnte sich im Laufe der Zeit ändern.
Wenn sbt Refresh beendet Update Ihre build.sbt-Datei wie folgt:
lazy val MyApp = project.in(file("."))
.settings(artifactName := {(
sv: ScalaVersion,
module: ModuleID,
artifact: Artifact) => "MyApp.jar"
})
.settings(packSettings)
Dann laufen:
sbt pack
Oder wenn Sie dieses Projekt für ein Kind zu tun, führen Sie dies:
sbt "project childproject" clean pack
Dies wird schön trennen Sie Ihre wichtigsten JAR-Datei und Ihre abhängen ency Gläser.
Ihr App-Jar befindet sich im Ziel-Scala-Ordner.
Ihre Abhängigkeiten werden in target/pack/lib sein.
Auf diese Weise können Sie Ihre Abhängigkeiten einmal bereitstellen.
Und wann immer Sie Ihre App ändern, können Sie einfach Ihre App JAR-Datei bereitstellen.
Also in jeder Änderung müssen Sie nicht eine Uber JAR-Datei bereitstellen.
Auch in der Produktion, können Sie Ihre App wie laufen:
java -cp "MyApp.jar:dependency_jars_folder/*" com.myapp.App