在 SBT 中重命名程序集生成的 uberjar

xma*_*mar 3 scala jar uberjar sbt sbt-assembly

如何重命名和移动使用 SBT 程序集插件生成的 uberjar?

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
Run Code Online (Sandbox Code Playgroud)

我的 assemblyMergeStrategy(用于 META-INF 删除):

assemblyMergeStrategy in assembly := {
   case PathList("META-INF", xs @ _*) => MergeStrategy.discard
   case x => MergeStrategy.first
}
Run Code Online (Sandbox Code Playgroud)

它会生成类似以下内容的内容:

target/scala-2.12/my-project-assembly-0.1.jar 
Run Code Online (Sandbox Code Playgroud)

我希望能够使用一致的名称(不需要单独的脚本)自动重命名(并在另一个目录中生成)。

Mig*_*uel 6

您可以在项目页面中找到一些文档。在那里,您可以找到可以为任务重写的键assembly

您正在搜索的是assemblyJarNameassemblyOutputPath。然后,您的项目构建应该类似于:

lazy val myProject = (project in file(".")).
  settings(
    ...
    assemblyJarName in assembly := "myName.jar",
    assemblyOutputPath in assembly := "...",
    ...
  )
Run Code Online (Sandbox Code Playgroud)