ant入门学习

来源:互联网 发布:android 系统相机源码 编辑:程序博客网 时间:2024/06/10 23:34
  1. ant环境搭建
    1. apache官网下载ant解压
    2. 配置环境变量
  2. ant脚本编写(标签[一部分])
    1. <project>标签
      1. name 项目名称
      2. default 默认执行的target
      3. basedir 项目基准路径
      4. description 描述
    2. <property>元素
      1. name 定义的属性名
      2. value 定义的属性值
      3. file 通过属性文件导入属性
    3. <target>标签 
      1. name target名
      2. depends 依赖的target
      3. if unless 逻辑判断是否执行
      4. description 描述
    4. <mkdir>标签 
      1. dir 要创建的目录名
    5. <jar>标签 
      1. destfile  生成的jar文件名字
      2. basedir 被归档的目录
      3. includes 被归档的文件模式
      4. excludes 被排除的文件模式
    6. <javac标签> 
      1. srcdir 源程序目录
      2. destdir class文件输出目录
      3. includes 被编译的文件模式
      4. excludes 被排除的文件模式
      5. classpath 使用的类路径(编译需要的依赖第三方库)
      6. debug 调试信息
      7. optimize 是否使用优化[]
      8. fileonerror 遇到错误是否停止
    7. <java>标签 
      1. classname 将执行的类名
      2. jar 包含该类的jar文件
      3. classpath 使用的类路径(编译需要的依赖第三方库)
      4. fork 在一个新的虚拟机中运行该类
      5. output 输出文件
      6. appended 追加或者覆盖默认文件
    8. <delete>标签 
      1. file 要删除的文件
      2. dir 要删除的目录
      3. includeEmptyDirs 是否对空目录进行该操作
      4. verbose 是否列出删除的文件
    9. <copy>标签 
      1. file 源文件
      2. tofile 目标文件
      3. todir 目标文件夹
      4. overwrite 是否覆盖目标文件
    10. <war>标签 
      1. destfile 生成的文件名
      2. dir 被归档的文件目录
    11. <echo>标签 
      1. 输出message
  3. ant数据类型
    1. argument 类型 
      1. values 是一个命令参数。如果参数中有空格,但又想将它作为单独一个值,则使用此属性。
      2. file表示一个参数的文件名。在构建文件中,此文件名相对于当前的工作目录。
      3. line表示用空格分隔的多个参数列表。
      4. path表示路径
    2. ervironment 类型 
      1. file表示环境变量值的文件名。此文件名要被转换位一个绝对路径。
      2. path表示环境变量的路径。Ant会将它转换为一个本地约定。
      3. value 表示环境变量的一个直接变量。
      4. key 表示环境变量名。
    3. filelist类型 
      1. dir是用于计算绝对文件名的目录。
      2. files 是用逗号分隔的文件名列表。
      3. refid 是对某处定义的一个<filelist>的引用。
    4. fileset类型 
      1. dir表示fileset 的基目录。
      2. casesensitive的值如果为false,那么匹配文件名时,fileset不是区分大小写的,其默认值为true.
      3. defaultexcludes 用来确定是否使用默认的排除模式,默认为true。
      4. excludes 是用逗号分隔的需要派出的文件模式列表。
      5. excludesfile 表示每行包含一个排除模式的文件的文件名。
      6. includes 是用逗号分隔的,需要包含的文件模式列表。
      7. includesfile 表示每行包括一个包含模式的文件名。
    5. patternset 类型:fileset 是对文件的分组,而patternset是对模式的分组,他们是紧密相关的概念。<patternset>支持4个属性:includes excludex includexfile 和 excludesfile,与fileset相同。Patternset 还允许以下嵌套元素:include,exclude,includefile 和 excludesfile.
    6. filterset 类型 
      1. begintoken 表示嵌套过滤器所搜索的记号,这是标识其开始的字符串。
      2. endtoken表示嵌套过滤器所搜索的记号这是标识其结束的字符串。
      3. id是过滤器的唯一标志符。
      4. refid是对构建文件中某处定义一个过滤器的引用。
    7. Path类型
      1. location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。
      2. refid 是对当前构建文件中某处定义的一个path的引用。
      3. path表示一个文件或路径名列表。
    8. mapper类型
      1. classname 表示实现mapper类的类名。当内置mapper不满足要求时,用于创建定制mapper.
      2. classpath表示查找一个定制mapper时所用的类型路径。
      3. classpathref是对某处定义的一个类路径的引用。
      4. from属性的含义取决于所用的mapper.
      5. to属性的含义取决于所用的mapper.
      6. type属性的取值为identity,flatten glob merge regexp 其中之一,它定义了要是用的内置mapper的类型。
  4. ant扩展(自定义TASK)
    1. 继承org.apache.tools.Task;
    2. 覆写public void execute()throws BuildException;
    3. 在类中添加的属性即为任务标签的属性;
    4. 在build.xml中声明任务<taskdef name="   "   classname="    "   classpath="bin"/>
  5. ant用法示例
<?xml version="1.0"  encoding='gbk'?><project name="proName" default="first" basedir=".">     <description>description</description>     <tstamp prefix="start" />     <tstamp>          <format property="compile.timestamp" pattern="yyyy-MM-dd HH.mm.ss" />     </tstamp>     <!-- set global properties for this build -->     <property file="build.properties" />     <target name="init" description="create timestamp and directories">          <echo>Init...</echo>          <tstamp />          <delete dir="classes" />          <delete dir="${distlib}" />          <mkdir dir="classes" />          <mkdir dir="${distlib}" />     </target>          <!-- copy-jars -->     <target name="copy-jars" depends="init" description="copy required jars">          <mkdir dir="${distlib}/WEB-INF/lib" />          <copy todir='${distlib}/WEB-INF/lib'>               <!-- jars -->               <fileset file="${jarPath}/validation-api-1.0.0.GA-sources.jar"/>               <fileset dir="${jarPath}/war/WEB-INF/lib" >                    <include name="gwtexporter-2.4.0-M1.jar"/>               </fileset>          </copy>     </target>     <target name="jars" depends="copy-jars" >          <jar destfile='${distlib}/WEB-INF/lib/jarName.jar'>               <fileset dir="${projectName}/src">                    <include name="com/**"/>                    <include name="i18n/**"/>               </fileset>          </jar>     </target>     <!-- copy-conf -->     <target name="copy-conf" depends="jars" description="copy-conf">          <mkdir dir="${distlib}/WEB-INF/conf" />          <copydir dest="${distlib}/WEB-INF/conf" src="${project}/conf"/>     </target>     <target name="copy-file" depends="copy-conf" >          <copy todir='${distlib}'>               <fileset dir="${projectName}/war">                    <exclude name="database/"/>               </fileset>          </copy>     </target>     <!-- gwt-compile -->     <target name="gwt-compile" depends="copy-file" description="Compile to JavaScript">          <java classname="com.google.gwt.dev.Compiler" fork="yes" failonerror="true" maxmemory="512m" >               <classpath>                    <pathelement location="${projectName}/src" />                    <fileset dir="${distlib}/WEB-INF/lib/" />                    <pathelement location="${gwt.home}/gwt-user.jar" />                    <pathelement location="${gwt.home}/gwt-dev.jar" />               </classpath>               <arg value="-style"/>               <arg value="OBFUSCATED"/>               <arg value="${gwt.module.id}" />               <arg value="-war"/>               <arg value="${distlib}"/>          </java>     </target>     <target name="first" depends="gwt-compile" description="build war package" />     </project>




0 0