用Ant构建JavaScript组件(2)

http://www.itjxue.com  2015-08-06 23:09  来源:未知  点击次数: 

下面我们开始写自己的 build.xml.

首先,配置项目的基本信息,以及相关目录名称,将要使用的编码等等:

<project name="Smart Queue" default="compress" basedir=".">
    <description>Build file for Ant</description>
    <property name="src" location="src" />
    <property name="build" location="build" />
    <property name="lib" location="lib"/>
    <property name="inputencoding" value="utf-8"/>
    <property name="outputencoding" value="gbk"/>

接着,定义一个用于初始化的 target, 它负责创建 build 子目录:

    <target name="init">
        <mkdir dir="${build}"/>
    </target>

然后定义名为 concat 的 target, 负责将 src 里的 3 个 JavaScript 文件按先后顺序连接起来。运行它要先运行前面定义的 init:

    <target name="concat" depends="init">
        <concat destfile="${build}/smart-queue.source.js" encoding="${inputencoding}" outputencoding="${outputencoding}">
            <filelist dir="${src}" files="intro.js, lang.js, smart-queue.js" />
        </concat>
    </target>

这样,就可以得到一个可以工作的 JavaScript 文件,下面的 target 负责压缩这个文件,显然它依赖于 concat, 也依赖于 init, 但是不必显式指定对 init 的依赖——Ant 能处理这种依赖关系。这里调用 YUI Compressor 并传入适当的参数:

    <target name="compress" depends="concat">
        <java jar="${lib}/yuicompressor.jar" fork="true">
            <arg line="--type js --charset utf-8 -o ${build}/smart-queue.js ${build}/smart-queue.js"/>
        </java>
    </target>

大功告成,compress 处理后的文件就可以部署到生产系统上去了。最后我们做一下清理工作,使你在生成文件后还可以回到最初的状态:

    <target name="clean">
        <delete dir="${build}"/>
    </target>

到此可以说基本的配置就写完了。怎么使用它呢?以命令行方式进入到组件根目录(或者说 build.xml 所在的目录),然后:

  • 运行 ant concat, 将得到 ./build/smart-queue.source.js
  • 运行 ant, 将选择 <project> 中 default 引用的那个 target, 即 compress, 所以会得到 ./build 下的 smart-queue.source.js 和 smart-queue.js
  • 运行 ant clean, 将删除 ./build 目录,回到最初的状态

这些前提是你已经正确安装或者说设置好了 JDK 和 Ant, 如果有错误提示出来,则可能需要检查它们是否已准备妥当。

一路看下来,是不是觉得本期介绍的东西很简单?那是当然了,构建工具就应该简单易用,否则把大量的时间花在那上面岂非不值?工具的价值在于提升生产力,从而创造更多价值。

最后,你可以在 这里 查看 Ant 的帮助文档(里面有很多好玩的东东哦),也可以在 这里 查看本期完整的 build.xml 文件。

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章