道非道 非常道

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

          統計

          web

          天圓

          經濟 政治 軍事

          鍵康

          ant 學習筆記 (一)

                 Ant 學習筆記(1)
           介紹、下載、說明、安裝

          Ant 全名: Another Neat Tool ,意思是另一個清潔工具。

          Ant 介紹:
                  ant 是構建工具,是Apache 的一個項目,是一個基于JAVA的build工具,用來編譯、運行、測試JAVA
              程序,構建、包裝和發布任務。
          Ant 優勢:
                  * 操作方便,只需在命令行輸入 ant ,它就會自動尋找 build.xml文件。
                  * 良好的跨平臺,可以在各種平臺上運行。
                  * 結構清晰,能讓開發人員運行各種各樣的任務。
          Ant 下載:
              http://ant.apache.org/
          Ant 配置:
                  1.環境變量中,查找 Path 變量并選中,然后編輯,如果沒有新建,,在彈出的“系統變量”對象話中設定
              系統變量 Path,Path = D:\*\Apache-ant- 1.7.0\bin
                2.單擊“系統變量”選項卡中的新建按鈕,創建 ANT_HOME=D:\*\apache-ant-1.7.0
                3.在cmd命令框中輸入ant 命令,即可查看 Ant  是否安裝成功
                注意:
                    ant 啟動時,自動加載 build.xml 項目配置文件,如果取別的名字,使用 buildfile標記
                    運行 Ant ,比如: ant -buildfile gd.xml
          Ant 的使用方法:
                  Ant 的配置運行文件是 build.xml,一般放在項目根目錄下,通過運行它即可完成相應工作。
          Ant 能完成的工作:
                  init ,初始化工作,即在進行打包、部置之前對環境進行一些初始化工作。
                  compile,編譯工作,即將java代碼編譯成class;
                  javadoc,生成文檔,即用來生成API的相關文檔;
                  jar,打包工作,即用來將編譯后的class文件打成jar;
                  deploy,部署工作,即用來對打好的jar或war進行部署;
                  clean,清除工作,即用來清空初始化的環境;
                  all,執行全部任務。

           元素屬性說明

              一般來講,一個XML文件要包含 project 和target 兩個元素
              1.project 元素的屬性:
                          name:表示一個工程的名字.
                          default:每個project都包含一個或多個target,一個target又包含一系列想要執行的task,
                  當Ant 開始運行時,開發人員可以選擇target執行.如果沒有 target 被指定執行時,默認的任務
                  將執行.
                          basedir:當前工程的基本路徑,"."表示當前工程的根目錄.
              2.一個project有一系列的property,property類似于全局變量,包含name和value兩個屬性.
                          name:變量名稱.
                          value:變量值.
                          屬性該問的方法:${property-name};
              3.Ant 內置的屬性
                          basedir:工程的路徑.
                          ant.file:build文件的路徑.
                          ant.version:版本.
                          ant.project.name:工程名.
                          ant.java.version:jvm版本.
              4.target 元素的屬性
                          name:指定目錄名稱.
                          depends:指定所依賴的target.
                          if:條件,如果不滿足條件則不執行.
                          unless:條件,如果不滿足條件則不執行.
                          description:對target 的描述.
                          task:一小段的任務.
                          reference:引用,通過refid屬性來引用在其他節中定義的ID.

          ant 的基本語法介紹:
                  1.ant 命令行,最常用的命令分析如下:
                      //應用 build.xml 作為默認的腳本文件,目錄路徑默認。
                      ant
                     
                      //應用 test.xml 作為默認的腳本文件,目錄路徑默認。
                      ant  -builefile test.xml
                     
                      // 應用 test.xml 作為默認的腳本文件,目錄路徑設置為 dist
                      ant -builefile test.xml dist
                     
                      //應用test.xml 作為默認的腳本文件,目標路徑設置為 dist ,并且把構建的屬性文件放在
                        buile/classes  下
                       ant -buildfile test.xml -Dbuile=buile/classes dist
                       
                       //執行從/home/ant/extras 添加的任務和jar 包
                       ant -lib /home/ant/extras
                  想了解更多的命令,可以運行 ant -H獲取命令列表。
                  2.添加屬性文件
                      <property file="${basedir}/build.properties" />
                  3.CLASSPATH設置,示例如下:
                      <path id="classpath">
                              <pathelement path="${hibernate_jar}"/>  //從什么地方加載
                              <fileset dir="${lib.dir}"> //設置文件夾
                                      <include name="**/*.jar" />   //將.jar 放在dir中
                              </filest>
                      </path>
                      以上代碼與設置 CLASSPATH=/***/*.jar;/***/*.jar;是等效的
                  4.文件COPY命令,示例代碼如下:
                      <!-- 拷貝源文件 -->
                      <copy todir="${build.src}">
                          <fileset dir="${src.dir}"/>
                      </copy>
                  5.打包任務jar 命令,示例代碼如下
                      <!-- 打包文件 -->
                      <jar jarfil="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" />
                  6.生成JAVADOC的命令,示例代碼如下:
                      <javadoc pachagename="${[aclages}"     //包名
                                          sourcepath="${build.src}"    // 源文件路徑
                                          destdir="${build.javadosc}"  // 目標路徑
                                          author="true"                
                                          version="true"               //是否帶有版本信息
                                          use="true"                                     //
                                          splitindex="true"
                                          windowtitle="${NAME}API"
                                          doctitle="${NAME}">
                          <javadoc>
                      7.刪除命令,示例代碼如下所示:
                          <delete dir="${dir.build}" />
                         
                          ant 在線文檔,地址是:http://ant.apache.org/manual/index.html
                         
                      8.后臺打印命令
                          <echo message="jdk version: 1.5.0" />

          一些常用的 ant 文件:
                 <?xml version="1.0" encoding="UTF-8"?>
          <!-- ======================================================================
               2007-10-24 上午09:01:29                                                       

               project   
               description
                            
               yihang                                                               
               ====================================================================== -->
          <project name="project" default="default">
              <description>
                      轉換字符
              </description>
             
              <target name="help">
                  <echo message=" this is  help"></echo>
             
              </target>

              <!-- =================================
                    target: default             
                   ================================= -->
              <target name="default" description="--> description">
                  <native2ascii dest="." includes="src/com/news/struts/*.txt" encoding="GBK" ext=".properties"></native2ascii>
              </target>

          </project>

          元素說明:
          <?xml version="1.0"?>
          <!--配置myApp的Ant文件,將gd包中的內容打成jar -->
          <project name="myApp" default="init" basedir=".">
              <property name="myApp.home" value="." />
              <property name="myApp.lib" value="${myApp.home}/WEB-INF/lib" />
              <property name="myApp.jar" value="${myApp.home}/WEB-INF/lib" />
              <property name="myApp.classes" value="${myApp.home}/WEB-INF/classes" />
              <!--配置使用Tomcat所在的目錄 -->
              <property name="tomcat.home" value="D\:/apache-tomcat-6.0.2" />
              <!--<property file="build.properties" />以上內容還可以定義在build.properties中-->
              <target name="init">
                  <path id="all">
                      <!--初始化時需要使用的jar -->
                      <fileset dir="${myApp.lib}">
                          <include name="**/*.jar" />
                      </fileset>
                      <!--初始化時需要使用的jar -->
                      <fileset dir="${tomcat.home}/common/lib">
                          <include name="*.jar" />
                      </fileset>
                  </path>   
                  <!--創建目錄 -->
                  <mkdir dir="${myApp.classes}" />
              </target>
              <!--定義 target -->
              <!--清空生成的calss -->
              <target name="clean">
                <!-- 刪除目錄 -->
                  <delete dir="${myApp.classes}">
                  </delete>
              </target>
              <!--定義target,該target依賴于init,編譯時需要依賴與初始化的結果 -->
              <target name="compile" depends="init">
                  <!--編譯時使用的版本是1.5 -->
                      <javac srcdir="${myApp.home}/WEB-INF/src"
          encoding="utf-8"  destdir="${myApp.classes}" target="1.5">
                      <classpath refid="all" />
                  </javac>
              </target>
              <!--定義target,該target 依賴于 compile,com.gd包下的代碼打成加,命名為nancy2.0.0.jar -->
              <target name="jar" depends="compile">
                  <jar jarfile="${myApp.jar}/nancy2.0.0.jar" basedir="${myApp.classes}" includes="com/gd/**">
                  </jar>
              </target>
              <!--將myApp項目打成war文件-->
              <target name="war" depends="jar">
                  <war destfile="${myApp.home}/myApp.war" webxml="${myApp.home}/WEB-INF/web.xml">
                          <!-- 包含該文件夾下所有內容 -->
                      <fileset dir="${myApp.home}" casesensitive="yes">
                          <include name="WEB-INF/**" />
                          <exclude name="*.war" />
                      </fileset>
                      <!--所依賴的jar-->
                      <lib dir="${myApp.home}/WEB-INF/lib">
                          <include name="*.jar" />
                      </lib>
                  </war>
              </target>
          </project>





          posted on 2009-06-25 09:05 星期五 閱讀(298) 評論(0)  編輯  收藏 所屬分類: 項目工具

          主站蜘蛛池模板: 扎鲁特旗| 会理县| 镇江市| 蛟河市| 拉萨市| 河津市| 新余市| 鹤山市| 奇台县| 文水县| 金华市| 桐乡市| 平谷区| 八宿县| 石首市| 遵义市| 麻城市| 湘潭市| 新余市| 乌鲁木齐县| 迁安市| 巩留县| 龙南县| 江达县| 甘南县| 左贡县| 兴和县| 丹寨县| 鄯善县| 黄冈市| 西林县| 玉田县| 九台市| 罗田县| 郁南县| 沁阳市| 皋兰县| 禄劝| 台北市| 和政县| 商南县|