на основе Google Мне удалось написать небольшой скрипт на Groovy, который упаковывает zip-файлы так, как мне нужно.
ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream("${uid}.pufi"));
ZipEntry mainentry = new ZipEntry('main.xml')
zipOutput.putNextEntry(mainentry)
zipOutput << "mainmainmain"
zipOutput.closeEntry()
ZipEntry manifentry = new ZipEntry('manifest.xml')
zipOutput.putNextEntry(manifentry)
zipOutput << new FileInputStream(options.manifest)
zipOutput.closeEntry()
Это работает, но я хотел бы знать, как Groovy выясняет, что вызывать в строках entry << "foobar"
или entry << new FileInputStream(..)
. Как я вижу, ZipOutputStream - это класс Java, его javadoc не содержит никаких методов, которые можно вызывать даже с аргументами String или InputStream. Не могли бы вы объяснить мне, как это работает и где это задокументировано? Я хотел бы узнать больше о Groovy ..: -)