使用 sbt-native-packager 时将 tgz 重命名为 tar.gz

Rename tgz to tar.gz while using sbt-native-packager

我使用 sbt-native-packager 构建一个扩展名为 .tgz 的压缩 tar 文件。然后我使用

添加该工件
artifact in (Compile, (packageZipTarball in Universal)) := {
  val previous: Artifact = (artifact in (Compile, (packageZipTarball in Universal))).value
  previous.withClassifier(Some("assembly")).withExtension("tar.gz")
 },
 addArtifact(artifact in (Compile, (packageZipTarball in Universal)), (packageZipTarball in Universal))

使用此配置,.tgz 文件将作为 .tar.gz 发布到 Nexus 或本地存储库。

如何在不影响工件发布的情况下,将target目录中的.tgz重命名为.tar.gz

为确保我答对了你的问题:

$ sbt universal:packageZipTarball

生成一个扩展名为 .tgz 的文件。您想要的是扩展名为 .tar.gz.

的文件

您可以通过覆盖 universal:packageZipTarball 并简单地移动结果来实现此目的。我没有测试过这段代码,但它应该能让你有个大概的了解

packageZipTarball in Universal := {
   val targzFile = universal:packageZipTarball
   val renamedFile = targzFile.getParent / targzFile.getName.replaceAll("\.tgz$", ".tar.gz")
   IO.move(targzFile, renamedFile)
   renamedFile
}

干杯, 向