阅读(2893) (0)

Ant 构建文件

2016-08-12 21:16:46 更新

一般来说,Ant 的构建文件默认为 build.xml,放在项目顶层目录中。然而,并没有限制构建文件必须命名为 bulid.xml,也并不限制放在项目顶层目录中。你可以将构建文件命名为其他名字,也可以将它放在项目的其他地方。

这个教程将以简单的方式向你展示如何利用 Apache Ant 来自动地构建和部署项目的过程。在完成本教程的学习以后,你将会发现你已经具备下一阶段学习 Apache Ant 中等水平的专业知识 。

1.project

例如:

<project name="Cesium" default="combine">

属性:

  • name : 项目名称
  • default:指定运行的target名称,没有指定时使用缺省的target;
  • basedir:基准路径,其他的相对路径都是基于这个基准路径的;
  • description:项目描述信息。 

2.target

<target name="combine" depends="build,combineJavaScript" description="Combines all source files into a single stand-alone script." />

注意:一个target可以依赖于其他target。例如combine依赖于 build target 和 combineJaveScript target,ant 会按照 depends 中 target 出现的顺序依次执行,并且每个 target 只会被执行一次,即使有多个target依赖于他。

target有以下属性:

  • name:target名称,这个属性是必须的;
  • depends:依赖目标,非必须
  • if:当属性设置时才执行该target,非必须;
  • unless:当属性没有设置时才执行该target,非必须;
  • description:target的描述信息,非必须;

3.task

Task分为内置task和自定义task,每个task都是一段可执行的代码。

  1. 内置task
    <copy file="${requirejsPath}/require.min.js" tofile="${cesiumViewerOutputDirectory}/require.js" />
  2. 自定义task
    调用任务:
    <glslToJavascript minify="${build.minification}" minifystatefile="${buildDirectory}/minifyShaders.state">
        <glslfiles dir="${shadersDirectory}" includes="**/*.glsl" />
        <existingjsfiles dir="${shadersDirectory}" includes="**/*.js" excludes="*.profile.js" />
    </glslToJavascript>
    定义任务:
    <scriptdef name="glslToJavascript" language="javascript" src="${tasksDirectory}/glslToJavaScript.js" manager="bsf" classpathref="javascriptClassPath" loaderref="javascript.loader">
                <attribute name="minify" />
                <attribute name="minifystatefile" />
                <element name="glslfiles" type="fileset" />
                <element name="existingjsfiles" type="fileset" />
    </scriptdef>

创建一个文件命名为 build.xml 的文件,存储在你电脑的任意地方 ,并包含以下的内容:

<?xml version="1.0"?>
<project name="Hello World Project" default="info">
   <target name="info">
      <echo>Hello World - Welcome to Apache Ant!</echo>
   </target>
</project>