<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    日出星辰

    Ant學習實例

    1.安裝Ant

    先從http://ant.apache.org/下載Ant,解壓到任一目錄下面,比如E:\Lab

    然后設置環境變量

    ANT_HOME=E:\Lab\apache-ant-1.8.2

    path=E:\Lab\apache-ant-1.8.2\bin

    最后驗證是否安裝成功

    在dos中輸入ant,如果顯示

    Buildfile: build.xml does not exist!
    Build failed

    則安裝成功

    2.基礎元素

    project元素

    project元素是Ant文件的根元素

    project的屬性

    Attribute

    Description

    Required

    name

    項目名稱

    No

    default

    當沒有指定target時使用的缺省target

    Yes

    basedir

    用于指定基路徑的位置。該屬性沒有指定時,使用 Ant 的構件文件的附目錄作為基準目錄。

    No

    target元素

    target為Ant的基本執行單元,它可以包含一個或多個具體的任務。多個target 可以存在相互依賴關系

    Ant會依照depends屬性中target出現的順序(從左到右)依次執行每個target。然而,要記住的是只要某個target依賴于一個target,后者就會被先執行。

    <target name="A"/>

    <target name="B" depends="A"/>

    <target name="C" depends="B"/>

    <target name="D" depends="C,B,A"/>

    假定我們要執行target D。從它的依賴屬性來看,你可能認為先執行C,然后B,最后A被執行。錯了,C依賴于B,B依賴于A,所以先執行A,然后B,

    然后C,最后D被執行。

    一個target只能被執行一次,即時有多個target依賴于它。

    若想更好的控制build過程,可以使用if或unless。

    if 屬性

        用于驗證指定的屬性是否存在,若不存在,所在 target 將不會被執行。

    unless 屬性

        該屬性的功能與 if 屬性的功能正好相反,它也用于驗證指定的屬性是否存在,若不存在,所在 target 將會被執行。

    property元素

    property元素可看作參量或者參數的定義(即經常使用的變量),project 的屬性可以通過 property 元素來設定,也可在 Ant 之外設定。

    name是變量的名稱 value是變量的值,要用某個變量時使用${name}方式調用。

    3.完整示例

    創建一個java項目

    HelloWorld.java

    package com.test;
    
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("Hello world");
    	}
    }

    編寫build.xml文件

    注:build.xml放在和src同級目錄,而不是在src下級目錄

    目錄結構是

    MyProject <dir>
    |--lib <dir> --庫目錄
    |--classes <dir> --目的文件目錄
    |--src <dir> --源文件目錄
    |--doc <dir> --api文檔目錄
    |--build.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <project name="helloWorld" default="run" basedir=".">
    	<property name="src" value="src"/>
    	<property name="dest" value="build/classes"/>
    	<property name="lib" value="lib"></property>
    	<property name="hello_jar" value="hello1.jar"></property>
    	<!--初始化 之前執行刪除操作-->
    	<target name="init" depends="clean">
    		<mkdir dir="${dest}"/>
    	</target>
    	<!--編譯生成class文件 -->
    	<target name="compile" depends="init">
    		<javac srcdir="${src}" destdir="${dest}"></javac>
    	</target>
    	<!--將編譯后的class文件打包-->
    	<target name="build" depends="compile">
    		<mkdir dir="${lib}"/>
    		<jar jarfile="${lib}/${hello_jar}" basedir="${dest}"></jar>
    	</target>
    	<target name="run" depends="build">
    		<java classname="com.test.HelloWorld" classpath="${lib}/${hello_jar}"></java>
    	</target>
    	<!--刪除-->
    	<target name="clean">
    		<delete dir="${dest}"></delete>
    		<delete dir="${lib}"></delete><!-- 是dir 刪除目錄 ,不是file 刪除文件-->
    	</target>
    </project>
    整個過程:初始化----編譯----打包---放到相應的位置

    參考:

    http://www.cnblogs.com/philander/articles/1782254.html

    http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html

    posted on 2011-09-14 22:03 日出星辰 閱讀(196) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久久久久久99精品免费观看| 日本系列1页亚洲系列| a视频免费在线观看| 亚洲国产成人VA在线观看| 亚洲欧美在线x视频| 女人18毛片特级一级免费视频| 亚洲一区免费在线观看| 成年人免费的视频| 国产成人亚洲合集青青草原精品 | 亚洲av乱码一区二区三区按摩| 毛片a级毛片免费播放100| 亚洲日产乱码一二三区别| 在线视频免费国产成人| 老司机午夜在线视频免费 | 亚洲精品高清国产一线久久| 久久久WWW免费人成精品| 国产亚洲一区二区在线观看| 久久久免费的精品| 亚洲国产视频一区| 大学生a级毛片免费观看| 福利片免费一区二区三区| 国产成人精品亚洲精品| 国色精品va在线观看免费视频| 亚洲国产人成网站在线电影动漫| 2019中文字幕免费电影在线播放| 亚洲中文无码av永久| 国产伦精品一区二区三区免费迷| 91av免费在线视频| 亚洲视频免费在线观看| 久久久久久久久免费看无码| 国产精品国产亚洲区艳妇糸列短篇 | 亚洲va在线va天堂va不卡下载| 91制片厂制作传媒免费版樱花| 国产精品亚洲四区在线观看 | 亚洲乱码国产乱码精品精| 69精品免费视频| 亚洲乱妇老熟女爽到高潮的片| 亚洲成年看片在线观看| 无人在线观看免费高清| 亚洲乱理伦片在线观看中字 | 亚洲中文无码线在线观看|