Питер прав, хотя вы, вероятно, хотите установить правильные разрешения для сценариев оболочки и после распаковки - и если вы хотите, чтобы Gradle распознал, когда она уже выполнила эту задачу, и пропустил ее, вам следует подумать о настройке входов / выходов.также.
Вот фрагмент, который я использую, чтобы распаковать / скопировать недавно загруженную копию tomcat и настроить ее.
/**
* Expand the downloaded archive if it hasn't already been expanded
*/
task explodeTomcatServer(dependsOn: downloadTomcat) {
inputs.file file(tomcatZipFileLocation);
outputs.dir file(tomcatBaseName);
doLast {
copy {
from zipTree(tomcatZipFileLocation);
into project.projectDir;
include tomcatBaseName + '/bin/**';
include tomcatBaseName + '/conf/**';
include tomcatBaseName + '/lib/**';
include tomcatBaseName + '/webapps/**';
include tomcatBaseName + '/work/**';
}
// make sure that the shell scripts are set +x on linux / macs
if (System.getProperty("os.name").toLowerCase().indexOf("win") < 0) {
FileTree tree = fileTree(tomcatBaseName + '/bin').include('**/*.sh');
tree.each { File file ->
logger.info('Setting +x permission on ' + file);
file.setExecutable(true);
}
}
}
}