如何在javascript和css的Ant构建脚本中使用YUI Compressor

Mic*_*ake 9 javascript css ant minify yui-compressor

在Ant构建脚本中搜索如何使用YUI Compressor几天之后,我终于让它工作了.存在许多用于创建Ant任务并在构建脚本中使用它的旧示例(<2010),但这对我来说太过分了.

许多示例也很旧,需要更多的Ant知识或配置Ant任务.下面的解决方案对我来说简单快捷,简单有效.

Mic*_*ake 15

以下内容被添加到我的一个<target>标签中,以压缩单个目录中的所有 javascript文件.这些文件保留其原始名称.要为CSS执行此操作,只需将'js'切换为'css'并相应地更新路径.

这是通过YUI Compressor 2.4.7完成的,我在Eclipse Juno中运行Ant构建脚本,而不对类路径或其他设置修改进行任何更改.

<!-- Minimizing Javascript files -->
    <echo message="Compressing Javascript files at location: ${build.root}/resources/js/*.js" />
    <java jar="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar" fork="true">
        <arg value="${build.root}/resources/js/*.js" /> <!-- input path for JS files -->
        <!--<arg value="-v" /> --><!-- Turn on verbose -->
        <arg value="-o" />
        <arg value="'.js$:.js'" />
        <arg value="${build.root}/resources/js/*.js" /> <!-- output path for JS files -->
        <classpath>
            <pathelement location="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar"/>
        </classpath>
    </java>
Run Code Online (Sandbox Code Playgroud)

请随时改进这个答案.上面的解决方案对我有用,但我不是专家.

  • 它为 - /home/shwetanka/projects/webapp/webapp/content/js/mobile/*.js提供了FileNotFoundException,尽管路径存在. (2认同)

Vic*_*sky 5

我使用以下解决方案来缩小文件,因为我得到了FileNotFoundException上一个答案.

要缩小CSS,请替换jscss以下内容.

<target name="compress" description="compress the JS files">
    <copy todir="temp/js" overwrite="yes">
        <fileset dir="original/js"/>
    </copy>
    <apply executable="java" parallel="false" dest="temp/js">
        <fileset dir="temp/js" includes="**/*.js" />
          <arg line="-jar"/>
          <arg path="test_lib/yuicompressor-2.4.8.jar" />
          <arg line="-v"/>
          <srcfile/>
          <arg line="-o"/>
          <mapper type="glob" from="*.js" to="*-min.js"/>
          <targetfile/>
    </apply>
    <move todir="original/js" overwrite="true">
        <fileset dir="temp/js" />
        <mapper type="glob" from="*-min.js" to="*.js"/>
    </move>
</target>
Run Code Online (Sandbox Code Playgroud)