首页 > 解决方案 > 在 SBT 中重命名程序集生成的 uberjar

问题描述

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

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")

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

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

它会产生类似的东西:

target/scala-2.12/my-project-assembly-0.1.jar 

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

标签: scalajarsbtsbt-assemblyuberjar

解决方案


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

您正在搜索的是assemblyJarNameassemblyOutputPath。然后,您的项目构建应如下所示:

lazy val myProject = (project in file(".")).
  settings(
    ...
    assemblyJarName in assembly := "myName.jar",
    assemblyOutputPath in assembly := "...",
    ...
  )

推荐阅读