Gzip可以接受参数,如下所述。我想使用ant-run从maven中压缩一些文件,但是文档没有解释如何传递参数。
这是可能的吗?如果是,如何进行?
由于ant gzip任务不提供传递参数所需的属性,因此您应该使用exec任务:
<target name="runGZip">
<exec executable="gzip">
<arg value="bla"/>
....
</exec>
</target>
除此之外,由于您希望可移植性,您应该根据操作系统使用条件执行。如果你需要更多的帮助,请告诉我。
gzip (pack)任务除源文件和目标文件外无其他参数。将压缩级别传递给gzip的一个解决方案是使用exec任务并将gzip作为系统命令运行,但这不是一个可移植的解决方案。
不要忘记Ant是开源的。Gzip任务使用JDK的GZIPOutputStream
。它仍然没有任何方法来设置压缩级别,但可以创建一个支持此功能的GZIPOutputStream
子类。之后,您可以创建一个自定义gzip任务(基于原始代码),它使用子类GZIPOutputStream
而不是GZIPOutputStream
。任务可以将压缩级别设置从Ant XML传递到流。