Ant學習執行個體

來源:互聯網
上載者:User
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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.