Если вы хотите отделить файл приложение банки и ваших файлов фляга зависимых пакетов, здесь наиболее практичный метод я нашел с SBT;
Создание проекта/plugins.sbt файла, если не существует, и добавьте следующую строку:
addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.8.0")
После добавления этой строки обновить свой проект. Примечание: версия плагина может измениться во времени.
Когда SBT обновления завершает обновления файла build.sbt так:
lazy val MyApp = project.in(file("."))
.settings(artifactName := {(
sv: ScalaVersion,
module: ModuleID,
artifact: Artifact) => "MyApp.jar"
})
.settings(packSettings)
Затем запустите:
sbt pack
Или, если вы делаете это для детского проекта, выполните следующее:
sbt "project childproject" clean pack
Это будет прекрасно разделять ваш основной файл jar и вашу зависимость ency jars.
Ваше приложение будет находиться в целевой папке scala.
Ваши зависимости будут в target/pack/lib.
Таким образом, вы можете развернуть свои зависимости один раз.
И всякий раз, когда вы меняете свое приложение, вы можете просто развернуть файл приложения jar.
Поэтому при каждом изменении вам не нужно развернуть файл uber jar.
Кроме того, в производстве, вы можете запустить приложение как:
java -cp "MyApp.jar:dependency_jars_folder/*" com.myapp.App