我想对distZip任务创建的可分发zip存档使用特定名称。我使用下面的代码
distZip {
archiveName baseName+'-'+version+'-bin.zip'
}
生成的存档包含'baseName +' - '+ version +' - bin'文件夹。
jar -tvf baseName-version-bin.zip 0 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/ 81462 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/baseName-version.jar 0 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/lib/ 6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/a.jar 6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/b.jar
所有的罐子都放在这个目录里。我只想重命名存档而不打扰其中的内容。我期待zip中没有'-bin'后缀的'baseName-version'目录。
如何单独更改存档名称?
你可以这样做:
distZip {
archiveName "$baseName-$version-bin.zip"
}
distributions {
main {
contents {
eachFile {
it.path = it.path.replace('-bin', '')
}
}
}
}
另一件事是,添加这样的后缀像-bin更好的方式(并与maven兼容)将使用分类器属性。我正在使用java-library-distribution插件,但我相信它的配置插件应该是一样的(考虑到你也在使用maven插件)。那就足够了你喜欢:
distZip {
classifier = 'bin'
}
distributions {
main {
baseName = archivesBaseName
contents {
eachFile {
it.path = it.path.replace("-$distZip.classifier", '')
}
}
}
}
我通过配置doLast重命名构建的存档来实现它。
distZip {
doLast {
file("$destinationDir/$archiveName").renameTo("$destinationDir/"+baseName+'-'+version+'-bin.zip')
}
}
apply plugin: 'application'
在使用“应用程序”插件时,这是更改文件名的方式。
distributions {
main {
baseName = "watch"
version = ""
contents {
from('.') {
include '*.yml'
into "bin"
}
}
}
}
生成的文件'watch.tar
'和'watch.zip
'