Ant:如何使用具有相同源文件和目标文件的应用任务



我正在尝试使用以下命令运行应用任务:

  jpegtran.exe -copy none -optimize -perfect ./images/file.jpg ./images/file.jpg

我想递归地将其应用于所有图像。我尝试了以下 ant 代码,但 jpegtran 说参数无效。

<target name="optimize.images.jpg">
    <apply executable="jpegtran.exe" dir="${SRC_DIR}/public/assets/" parallel="false" verbose="true" resolveexecutable="true" force="true" vmlauncher="true">
        <arg value="-copy none"/>
        <arg value="-optimize"/>
        <arg value="-perfect"/>
        <srcfile/>
        <targetfile/>
        <fileset dir="${SRC_DIR}/public/assets/images" casesensitive="yes">
            <include name="**/*.jpg"/>
        </fileset>
        <mapper type="identity"/>
    </apply>
</target>

我的蚂蚁代码可能有什么问题?

需要

更改的一项是 -copy none 的嵌套<arg>元素。由于参数中有一个空格,因此请使用 line 属性而不是 value 。请参阅 Apache Ant 命令行参数。

<target name="optimize.images.jpg">
  <apply executable="jpegtran.exe" dir="${SRC_DIR}/public/assets/" 
    parallel="false" verbose="true" resolveexecutable="true" force="true" 
    vmlauncher="true">
    <arg line="-copy none"/>
    <arg value="-optimize"/>
    <arg value="-perfect"/>
    <srcfile/>
    <targetfile/>
    <fileset dir="${SRC_DIR}/public/assets/images" casesensitive="yes">
      <include name="**/*.jpg"/>
    </fileset>
    <mapper type="identity"/>
  </apply>
</target>

最新更新