道非道 非常道

          勤思、謹言、慎行、厚積、薄發

          統計

          web

          天圓

          經濟 政治 軍事

          鍵康

          [轉]ANT 打包編譯部署工具 學習筆記

          1.安裝apache-ant-1.5.4或其他版本

          2.配置環境變量:

              ANT_HOME=ant安裝目錄  

              PATH=%PATH%;%ANT_HOME%\bin                 
              設置完成后,輸入 ant -v
               顯示如下:
                        

          1Apache Ant version 1.7.1 compiled on June 27 2008
          2Buildfile: build.xml does not exist!
          3Build failed

                說明成功。                                                            

          3.build.xml

          <!--Ant(another neat tool---另一個整潔的工具)-->

          <?xml version="1.0"?>
          <project default="dist" name="Project A">
              
          <description>
                  一段描述信息,沒有實際作用。
              
          </description>
              
          <!--property 元素相當于變量,存放一定的值,一旦給定以后不能改變,只能通過控制臺命令行給初始值。
                          一般用 value 給其賦值,這里用 location 代替 value 是因為 location 屬性專門設
                          計用于以平臺無關的方式包含文件系統路徑,也就是當前路徑。
          -->
              
          <property name="srcDir" location="."/>
              
          <property name="buildDir" location="classes"/>
              
          <property name="distDir" location="dist"/>
              
              
          <!--一個target 元素就是一個任務,一個步驟,如果命令行沒有指定開始任務,則由 project 元素的 default 屬性決定要執行的任務-->
              
          <target name="init" description="在元素中指定描述信息!">
                  
          <echo message="這里的信息將被輸出到控制臺!">
                  
          <!--tstamp 元素一般不定義屬性和內容,不產生任何輸出;相反,它根據當前系統時間和日期設置 Ant 以下屬性:
                  屬性                說明                                    例子
                  DSTAMP            設置為當前日期,默認格式為yyyymmdd        20031217
                  TSTAMP            設置為當前時間,默認格式為hhmm            1603
                  TODAY            設置為當前日期,帶完整的月份            2003 年12 月17 日
          -->
                  
          <tstamp/>
                  
          <!--mkdir 元素用來創建目錄 dir 屬性用來指定目錄路徑-->
                  
          <!--delete 元素用來刪除目錄 ${buildDir} 引用 property 元素指定的 name 為 buildDir 的屬性變量-->
                  
          <mkdir dir="${buildDir}"/>
                  
          <mkdir dir="${distDir}"/>
                  
          <!--文件操作:
                      <copy file="src/Test.java" tofile="src/TestCopy.java"/> 把文件 Test.java 拷貝一份 TestCopy.java 
                      <move file="src/Test.java" tofile="src/TestCopy.java"/> 把文件 Test.java 重新命名為 TestCopy.java
                      <copy file="src/Test.java" todir="archive"/> 把文件 Test.java 從 src 目錄復制一份到 archive 目錄下
                      <move file="src/Test.java" todir="archive"/> 把文件 Test.java 從 src 目錄下移動到 archive 目錄下
                      <replace file="input.txt" token="old" value="new"/>replace 任務,它執行文件中的查找和替換操作。
                      token 屬性指定要查找的字符串,
                      value 屬性指定一個新的字符串,
                      查找到的標記字符串的所有實例都被替換為這個新的字符串.
                      替換操作將在文件本身之內的適當位置進行。為了提供更詳細的輸出,可把 summary 屬性設置為
                      true。這將導致該任務輸出找到和替換的標記字符串實例的數目。
                      <copy todir="archive">---使用模式匹配復制多個文件
                          <fileset dir="src">--fileset 代替 file 屬性
                              <include name="*.java"/>--包含 src 目錄下所有的 *.java 文件
                              <exclude name="*.class"/>--不包含 src 目錄下所有的 *.class 文件
                          </fileset>
                      </copy>
          -->
              
          </target>

              
          <!--target 元素的 depends 屬性用來設置多個 target 元素之間的依賴關系,如果要執行某個任務,必須先執行 depends 屬性指定的所有
                  它所依賴的 target 元素,只有它所依賴的所有 target 元素都執行完了才能執行它自己
          -->
              
          <target name="com" depends="init">
                  
          <!--javac 元素把 srcdir 指定目錄下所有 *.java 文件編譯成 *.class 文件到 destdir 指定的目錄下!
                      如果不指定 destdir 屬性,那么默認編譯到同一目錄下。其他屬性:
                       classpath:等價于javac 的-classpath 選項。
                       debug="true":指示編譯器應該帶調試信息編譯源文件。
                       fork="true":當你希望指定編譯器的某些內存選項,或者需要使用一種不同級別的編譯器的時候。該屬性設置為“true”
                       executable="d:sdk141injavac":指定一個不同的 javac 可執行文件。
                       memoryMaximumSize="128m":向上邊指定的 javac 傳遞一個最大內存設置
          -->
                  
          <javac srcdir="${srcDir}" destdir="${buildDir}"/>
              
          </target>

              
          <target name="dist" depends="com">
                  
          <!--jar 元素:在編譯 Java 源文件之后,結果類文件通常被打包到一個 JAR 文件中,這個文件類似 zip 歸檔文
                      件。每個 JAR 文件都包含一個清單文件,它可以指定該 JAR 文件的屬性。
                      還可以把目錄下的所有內容打包為 WAR 文件
                      destfile:打包后的文件全名
                      basedir:要打包的文件路徑
          -->
                  
          <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
                      
          <!--manifest 屬性允許指定一個用作該 JAR 文件的清單的文件。清單文件的內容還可以使用 manifest
                          任務在生成文件中指定。這個任務能夠像文件系統寫入一個清單文件,或者能夠實際嵌套在 jar 之
                          內,以便一次性地創建清單文件和 JAR 文件。
          -->
                      
          <manifest>
                          
          <attribute name="Built-By" value="${user.name}"/>
                          
          <attribute name="Main-Class" value="package.Main"/>
                      
          </manifest>
                  
          </jar>
                  
          <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
              
          </target>

              
          <target name="zip" depends="dist">
                  
          <!--zip 元素用來創建 zip 包,和 jar 元素相似-->
                  
          <zip destfile="output.zip" basedir="output"/>
                  
          <!--相同的語法也可用于創建 tar 文件。 還可以使用 GZip 和 BZip 任務來壓縮文件。-->
                  
          <tar destfile="output.tar" basedir="output"/>
                  
          <gzip src="output.tar" zipfile="output.tar.gz"/>
                  
          <!--解壓縮和提取文件同樣也很簡單.-->
                  
          <unzip src="output.tar.gz" dest="extractDir"/>
                  
          <!--還可以包括 overwrite 屬性來控制覆蓋行為。默認設置是覆蓋與正在被提取的歸檔文件中的條目相
                      匹配的所有現有文件。相關的任務名稱是 untar、unjar、gunzip 和 bunzip2。
          -->
              
          </target>

              
          <!--編寫一個 clean目標來從目標目錄移除生成的任何類文件是個很好的習慣。如果想要確
                  保所有源文件都已編譯,就可以使用這個任務。這種行為刻畫了 Ant 的許多任務的特點:
                  如果某個任務能夠確定所請求的操作不需要執行,那么該操作就會被跳過。
          -->
              
          <target name="clean">
                  
          <delete dir="${buildDir}"/>
                  
          <delete dir="${distDir}"/>
              
          </target>
          </project>



          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lip009/archive/2006/09/15/1226931.aspx

          posted on 2009-06-24 16:08 星期五 閱讀(222) 評論(0)  編輯  收藏 所屬分類: 工具

          主站蜘蛛池模板: 札达县| 鹤岗市| 兰坪| 眉山市| 舞阳县| 平乐县| 嘉定区| 双江| 梁山县| 黎城县| 西乌珠穆沁旗| 富锦市| 蓬溪县| 同心县| 芷江| 汶上县| 固镇县| 方山县| 巩留县| 定陶县| 黑河市| 长阳| 嘉黎县| 叙永县| 舒城县| 曲阜市| 岳阳县| 内乡县| 温泉县| 陆河县| 康平县| 佛山市| 海林市| 海原县| 昭平县| 镇巴县| 丹阳市| 绥江县| 英吉沙县| 铜鼓县| 县级市|