我正在使用:
带插件:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.3")
我使用universal:packgeBin
生成通用zip文件并发布到ivy存储库。
我想将zip文件名从project_id_scalaversion_buildVersion.zip
更改为project_id_scalaversion_buildVersion_dist.zip
。我该怎么做?
答案 0 :(得分:10)
此答案基于我使用过的1.0.3版本,但它也应该适用于最新版本(1.1.5)。
您可以根据需要为您的包装命名。唯一要做的是将以下设置添加到项目配置中:
packageName in Universal := s"${name.value}_${scalaVersion.value}_${version.value}_dist"
答案 1 :(得分:9)
我认为您不能轻易地为universal:packageBin
更改生成的工件的名称。
您可以使用artifactName
全局更改生成的工件的名称。
artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
artifact.name + module.revision + "_dist." + artifact.extension
}
但是,这也会修改生成的jar文件的名称,也可能修改生成的工件的其他名称。
如果您只想更改universal:packageBin
生成的文件的名称,您可以在生成文件后重命名该文件。 Sbt为您提供了相当容易的实用工具。
packageBin in Universal := {
val originalFileName = (packageBin in Universal).value
val (base, ext) = originalFileName.baseAndExt
val newFileName = file(originalFileName.getParent) / (base + "_dist." + ext)
IO.move(originalFileName, newFileName)
newFileName
}
现在调用universal:packageBin
应执行新任务,该任务将在创建文件后重命名该文件。