ant入門學習

  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" failοnerrοr="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>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章