Ответ 1
Я получил его для работы, настроив doLast, чтобы переименовать построенный архив.
distZip {
doLast {
file("$destinationDir/$archiveName").renameTo("$destinationDir/"+baseName+'-'+version+'-bin.zip')
}
}
Я хочу использовать определенное имя для распространяемого zip-архива, созданного задачей distZip. Я использовал ниже код
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
Все банки помещались внутри этого каталога. Я просто хочу переименовать архив и не нарушать его содержимое. Я ожидал каталог baseName-version без суффикса "-bin" внутри zip.
Как изменить имя архива в одиночку?
Я получил его для работы, настроив doLast, чтобы переименовать построенный архив.
distZip {
doLast {
file("$destinationDir/$archiveName").renameTo("$destinationDir/"+baseName+'-'+version+'-bin.zip')
}
}
Вы можете сделать это следующим образом:
distZip {
archiveName "$baseName-$version-bin.zip"
}
distributions {
main {
contents {
eachFile {
it.path = it.path.replace('-bin', '')
}
}
}
}
Другое дело, что для добавления такого суффикса, как -bin better way (и совместимого с maven), будет использоваться свойство классификатора. Я использую плагин java-library-distribution, но я считаю, что с дистрибутивом он должен работать одинаково (учитывая, что вы также используете плагин maven). Тогда вам достаточно сделать это:
distZip {
classifier = 'bin'
}
distributions {
main {
baseName = archivesBaseName
contents {
eachFile {
it.path = it.path.replace("-$distZip.classifier", '')
}
}
}
}
apply plugin: 'application'
При использовании плагина 'application', это изменило имя файла.
distributions {
main {
baseName = "watch"
version = ""
contents {
from('.') {
include '*.yml'
into "bin"
}
}
}
}
Сгенерированные файлы "watch.tar
" и "watch.zip
"
Я не эксперт... пока, но я надеюсь, что есть более элегантный способ получить его. Я бы посмотрел вокруг метода "артефактов": http://www.gradle.org/docs/current/userguide/artifact_management.html
Извините, у меня пока нет полного ответа