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) 編輯 收藏 所屬分類: 項目工具