I am using:
with plugin:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.3")
I am using the universal:packgeBin
to generate the universal zip file and publish to ivy repository.
I'd like to change the zip file name from project_id_scalaversion_buildVersion.zip
to project_id_scalaversion_buildVersion_dist.zip
. How would I do that?
This answer is based on version 1.0.3 that I have used, but it should apply to the latest version (1.1.5) as well.
You can name your package however you want. The only thing to do is to add the following setting to the configuration of your project:
Universal / packageName := s"${name.value}_${scalaVersion.value}_${version.value}_dist"
I think you cannot change the name of the generated artifact just for the universal:packageBin
easily.
You can change the name of the generated artifact globally, by using artifactName
.
artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
artifact.name + module.revision + "_dist." + artifact.extension
}
This will however also modify also the name of the generated jar file, and perhaps some other names of the generated artifacts.
If you wanted to change the name only of the file generated by the universal:packageBin
you could rename the file after it was generated. Sbt gives you utilities which make this rather easy.
Universal / packageBin := {
val originalFileName = (Universal / packageBin).value
val (base, ext) = originalFileName.baseAndExt
val newFileName = file(originalFileName.getParent) / (base + "_dist." + ext)
IO.move(originalFileName, newFileName)
newFileName
}
Now invoking the Universal/packageBin
should execute your new task, which will rename the file after it's created.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With