使用 sbt-native-packager 时将 tgz 重命名为 tar.gz
Posted
技术标签:
【中文标题】使用 sbt-native-packager 时将 tgz 重命名为 tar.gz【英文标题】:Rename tgz to tar.gz while using sbt-native-packager 【发布时间】:2018-12-28 06:44:00 【问题描述】:我使用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 或本地存储库。
如何在不影响工件发布的情况下将目标目录中的.tgz
重命名为.tar.gz
【问题讨论】:
【参考方案1】:为了确保我的问题是正确的:
$ 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
干杯, 渚
【讨论】:
以上是关于使用 sbt-native-packager 时将 tgz 重命名为 tar.gz的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sbt-native-packager 设置 Docker Registry
扩展 sbt-native-packager (Docker)
使用 sbt-native-packager 通过 JavaServerAppPackaging 检测 prometheus 导出器