如何去除sbt-conductr的bundle:dist生成Zip包的哈希后缀并获取文件
刚好我对sbt-conductr的配置比较熟悉,给你分两部分解决这两个问题:
1. 移除bundle:dist生成Zip包中的哈希值
sbt-conductr默认会在归档文件名后添加哈希值,我们可以通过配置bundleArchiveName来指定固定的无哈希文件名。在你的build.sbt中添加以下配置:
// 自定义bundle归档文件名,移除哈希后缀 bundleArchiveName := s"${name.value}-archive-${version.value}.zip"
这样生成的文件名就会变成[你的项目名]-archive-[你的版本号].zip,完全去掉了随机哈希串,方便你发布到Artifactory时指定确切文件名。
2. 在自定义任务myZipTask中获取bundle:dist生成的Zip文件
你不需要手动拼接或猜测文件名,sbt-conductr已经提供了现成的key来获取生成的归档文件。修改你的任务定义如下:
// 记得导入sbt-conductr的自动导入项 import com.typesafe.conductr.bundlelib.sbt.BundlePlugin.autoImport._ val myZipTask = taskKey[File]("return the bundle:dist-zip file") myZipTask := { // 先触发bundle:dist任务执行,确保Zip包已生成 bundleDist.value // 直接获取生成的Zip文件对象 bundleArchiveFile.value } addArtifact(Artifact("bundle", "zip", "zip"), myZipTask)
这里的关键细节:
bundleDist是对应bundle:dist命令的taskKey,调用.value会强制该任务执行,保证后续能拿到已生成的文件。bundleArchiveFile是sbt-conductr提供的配置key,直接指向bundle:dist生成的Zip文件路径,完全不需要手动处理文件名。
内容的提问来源于stack exchange,提问作者na1anya
相关产品推荐
相关产品推荐

