基于Google,我设法编写了一个Groovy脚本,根据需要打包拉链。
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 ..: - )
答案 0 :(得分:2)
Groovy为一些基本Java类添加了其他方法,以便以更加 groovy 的方式使用它们。有关其他方法的完整概述,请查看http://groovy.codehaus.org/groovy-jdk。在您的情况下,方法leftShift
添加了类OutputStream。 Groovy也会重载<<
运算符,因此它与调用对象上的方法leftShift
相同。