欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java自動(dòng)化工具Ant的基礎(chǔ)使用教程

 更新時(shí)間:2016年02月26日 15:26:45   作者:時(shí)之沙  
這篇文章主要介紹了Java自動(dòng)化工具Ant的基礎(chǔ)使用教程,例子在Windows系統(tǒng)下操作演示,講解了Ant基本的文件操作和屬性,需要的朋友可以參考下

Ant 是什么?
Apache Ant 是一個(gè)基于Java 的生成工具。據(jù)最初的創(chuàng)始人 James Duncan Davidson 介紹,這個(gè)工具的名稱是 another neat tool(另一個(gè)整潔的工具) 的首字母縮寫。

Ant的作用:
生成工具在軟件開發(fā)中用來將源代碼和其他輸入文件轉(zhuǎn)換為可執(zhí)行文件的形式(也有可能轉(zhuǎn)換為可安裝的產(chǎn)品映像形式)。隨著應(yīng)用程序的生成過程變得更加復(fù)雜,確保在每次生成期間都使用精確相同的生成步驟,同時(shí)實(shí)現(xiàn)盡可能多的自動(dòng)化,以便及時(shí)產(chǎn)生一致的生成版本,這就變得更加重要.

Ant的優(yōu)勢(shì):
Ant是一種基于Java的build工具。理論上來說,它有些類似于(Unix)C中的make ,但沒有make的缺陷。目前的最新版本為:Ant 1.8.4?! 〖热晃覀円呀?jīng)有了make, gnumake, nmake, jam以及其他的build工具為什么還要要一種新的build工具呢?因?yàn)锳nt的原作者在多種(硬件)平臺(tái)上開發(fā)軟件時(shí),無法忍受這些工具的限制和不便。類似于make的工具本質(zhì)上是基于shell(語言)的:他們計(jì)算依賴關(guān)系,然后執(zhí)行命令(這些命令與你在命令行敲的命令沒太大區(qū)別)。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴(kuò)展該工具;然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix.
Ant就不同了。與基于shell命令的擴(kuò)展模式不同,Ant用Java的類來擴(kuò)展。(用戶)不必編寫shell命令,配置文件是基于XML的,通過調(diào)用target樹,就可執(zhí)行各種task。每個(gè)task由實(shí)現(xiàn)了一個(gè)特定Task接口的對(duì)象來運(yùn)行。
Ant 定義生成文件之間的依賴關(guān)系,它使用跨平臺(tái)的 Java 類。使用 Ant,您能夠編寫單個(gè)生成文件,這個(gè)生成文件在任何 Java 平臺(tái)上都一致地操作(因?yàn)?Ant 本身也是使用 Java 語言來實(shí)現(xiàn)的),這就是 Ant 最大的優(yōu)勢(shì)

Ant生成文件剖析:
Ant 沒有定義它自己的自定義語法;相反,它的生成文件是用 XML 編寫的。存在一組 Ant 能夠理解的預(yù)定義 XML 元素,而且還可以定義新的元素來擴(kuò)展 Ant 的功能。每個(gè)生成文件由單個(gè) project 元素組成,該元素又包含一個(gè)或多個(gè) target 元素。一個(gè)目標(biāo)(target)是生成過程中已定義的一個(gè)步驟,它執(zhí)行任意數(shù)量的操作,比如編譯一組源文件。并且這些操作本身是由其他專用任務(wù)標(biāo)簽執(zhí)行的然后這些任務(wù)將根據(jù)需要被分組到各個(gè) target 元素中。一次生成過程所必需的所有操作可以放入單個(gè) target 元素中,但是那樣會(huì)降低靈活性。將那些操作劃分為邏輯生成步驟,每個(gè)步驟包含在它自己的 target 元素中,這樣通常更為可取。這樣可以執(zhí)行整體生成過程的單獨(dú)部分,卻不一定要執(zhí)行其他部分。
例如,通過僅調(diào)用某些目標(biāo),您可以編譯項(xiàng)目的源代碼,卻不必創(chuàng)建可安裝的項(xiàng)目文件
頂級(jí) project 元素需要包含一個(gè) default 屬性,如果在 Ant 被調(diào)用時(shí)沒有指定目標(biāo),這個(gè)屬性將指定要執(zhí)行的目標(biāo)。然后需要使用 target 元素來定義該目標(biāo)本身。

下面是一個(gè)最基本的生成文件:

<?xml version="1.0"?> 
 <project default="init"> 
 <target name="init"> 
  </target> 
</project> 

Ant基本使用方式:
1. 配置環(huán)境變量:
         ANT_HOME: C:\ant-1.8              -----> Ant的安裝/解壓目錄路徑
         PATH后追加: C:\ant-1.8\bin       ------>Ant中的BIN目錄路徑        
2. 確認(rèn)環(huán)境變量配置是否成功
         打開CMD窗口,然后輸入命令:  ant:
         看到如下顯示:

2016226152110608.jpg (663×263)

 由于Ant構(gòu)建時(shí)需要默認(rèn)有build.xml文件,因此有如上的提示,至此,說明Ant的環(huán)境已經(jīng)配置成功.

3. 使用Ant創(chuàng)建一個(gè)名為HelloWorld的文件夾:
 首先需要編輯build.xml:

<?xml version="1.0"?> 
 <project default="init"> 
 <target name="init"> 
  <span style="color:#FF0000;"><mkdir dir="HelloWorld"></span> 
 </target> 
</project> 

然后切換到build.xml文件所在的目錄,輸入ant,若有如下提示,則創(chuàng)建文件夾成功:
(init 部分相當(dāng)于 日志的輸出)

2016226152137766.jpg (665×440)

 4. 也可以使用ant創(chuàng)建多級(jí)嵌套的文件目錄
  只需要在build.xml文件中進(jìn)行修改:

<?xml version="1.0"?> 
 <project default="init"> 
 <target name="init"> 
  <span style="color:#FF0000;"> <mkdir dir="HelloWorld\a\b\c"/></span> 
 </target> 
</project> 

 
5. 刪除如上的多級(jí)目錄:

<?xml version="1.0"?> 
 <project default="init"> 
 <target name="init"> 
  <span style="color:#FF0000;"><delete dir="HelloWorld"/></span> 
 </target> 
</project> 

注意:此處路徑只用輸入最高級(jí)目錄路徑,這也正是ANT工具的強(qiáng)大之處:
  Java中如果要?jiǎng)h除目錄,除非該目錄為空才可以刪除,否則就要逐步進(jìn)行刪除.
  而使用Ant工具,則可以直接刪除含有子目錄的文件夾.

再看一個(gè)示例XML文件:  

<?xml version="1.0"?> 
<project default="init" name="Project"> 
<description> 
A simple project introducing the use of descriptive tags in Ant build files. 
</description> 
<!-- XML comments can also be used --> 
<target name="init" description="Initialize Argon database"> 
<!-- perform initialization steps here --> 
</target> 
</project> 


可以看出,XML 注釋可以使用在整個(gè)生成文件中以提高清晰性。而且,Ant 定義了它自己的description 元素和 description 屬性,它們可用于提供更結(jié)構(gòu)化的注釋。

Ant屬性:
Ant 中的屬性類似編程語言中的變量,它們都具有名稱和值。然而與通常的變量不同,一經(jīng)設(shè)置,Ant 中的屬性就不可更改;它們是不可變的,就像 Java 語言中的 String 對(duì)象。 這起初看來似乎很有限制性,但這樣是為了遵循 Ant 的簡(jiǎn)單原則: 畢竟,它是一個(gè)生成工具,而不是一種編程語言。如果嘗試給某個(gè)現(xiàn)有屬性賦予一個(gè)新的值,這不會(huì)被看作是一個(gè)錯(cuò)誤,但是該屬性仍然會(huì)保留其現(xiàn)有值

定義與使用屬性:

<property name="metal“ value="beryllium"/>

為了在生成文件的其他部分引用這個(gè)屬性,使用以下語法:

復(fù)制代碼 代碼如下:
${metal}

例如,為了使用這樣一個(gè)值,它是另一個(gè)屬性的值的組成部分,將標(biāo)簽寫成下面這樣

<property name="metal-database" value="${metal}.db"/> 


location屬性:
屬性經(jīng)常用于引用文件系統(tǒng)上的文件或目錄,但是對(duì)于使用不同路徑分隔符(例如,/ 與 \)的平臺(tái)來說,這樣可能在跨越不同平臺(tái)時(shí)導(dǎo)致問題。Ant 的 location 屬性專門設(shè)計(jì)用于以平臺(tái)無關(guān)的方式包含文件系統(tǒng)路徑。像下面這樣使用 location 來代替value:

<property name="database-file" location="archive/databases/${metal}.db"/>

用于 location 屬性的路徑分隔字符將被轉(zhuǎn)換為當(dāng)前平臺(tái)的正確格式;而且由于文件名是相對(duì)的,它被認(rèn)為是相對(duì)于項(xiàng)目的基目錄。我們同樣可以容易地寫為下面這樣:

<property name="database-file" location="archive\databases\${metal}.db"/>

這個(gè)標(biāo)簽的兩個(gè)版本都會(huì)在不同的平臺(tái)具有相同的行為.

定義依賴關(guān)系:
生成一個(gè)項(xiàng)目一般需要許多步驟 —— 例如首先要編譯源代碼,然后將它打包為 Java 歸檔文件
(Java Archive File,JAR)。這其中許多步驟都具有清楚定義的順序 —— 例如,在編譯器從源代碼生成類文件之前,您不能打包類文件。與順序指定 target 所不同的是,Ant 采用一種更靈活的方法來定義 依賴關(guān)系 。每個(gè)目標(biāo)的定義依據(jù)的是在它能夠執(zhí)行之前必須完成的其他所有目標(biāo)。這是使用 target 元素的 depends 屬性來實(shí)現(xiàn)的

<target name="init"/> 
<target name="preprocess" depends="init"/>
<target name="compile" depends="init,preprocess"/>
<target name="package" depends="compile"/>

這種方法允許您執(zhí)行項(xiàng)目任何階段的生成過程;Ant 會(huì)首先執(zhí)行已定義的先決階段。在上面的例子中,如果讓 Ant 完成 compile 步驟,它將判斷出需要首先執(zhí)行 init 和preprocess 這兩個(gè)目標(biāo)。init 目標(biāo)不依賴其他任何目標(biāo),因此它將首先被執(zhí)行。然后 Ant 檢查 preprocesstarget,發(fā)現(xiàn)它依賴 init 目標(biāo);由于已經(jīng)執(zhí)行了后者,Ant 不會(huì)再次執(zhí)行它,因而開始執(zhí)行 preprocess 目標(biāo)。最后可以執(zhí)行 compile 任務(wù)本身。
注意目標(biāo)出現(xiàn)在生成文件中的順序并不重要:執(zhí)行順序是由depends 屬性唯一確定的。

相關(guān)文章

  • 五分鐘手?jǐn)]一個(gè)Spring容器(萌芽版)

    五分鐘手?jǐn)]一個(gè)Spring容器(萌芽版)

    Spring的兩大內(nèi)核分別是IOC和AOP,其中最最核心的是IOC。這篇文章主要介紹了五分鐘,手?jǐn)]一個(gè)Spring容器的相關(guān)知識(shí),需要的朋友可以參考下
    2022-03-03
  • JavaPoet的使用指南小結(jié)

    JavaPoet的使用指南小結(jié)

    這篇文章主要介紹了JavaPoet的使用指南小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • SpringMvc配置靜態(tài)資源訪問路徑的實(shí)現(xiàn)

    SpringMvc配置靜態(tài)資源訪問路徑的實(shí)現(xiàn)

    本文主要介紹了SpringMvc配置靜態(tài)資源訪問路徑的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java System.setProperty()用法詳解

    Java System.setProperty()用法詳解

    這篇文章主要介紹了Java System.setProperty()用法詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java hashCode原理以及與equals()區(qū)別聯(lián)系詳解

    Java hashCode原理以及與equals()區(qū)別聯(lián)系詳解

    在 Java 應(yīng)用程序執(zhí)行期間,在同一對(duì)象上多次調(diào)用 hashCode 方法時(shí),必須一致地返回相同的整數(shù),前提是對(duì)象上 equals 比較中所用的信息沒有被修改。從某一應(yīng)用程序的一次執(zhí)行到同一應(yīng)用程序的另一次執(zhí)行,該整數(shù)無需保持一致
    2022-11-11
  • @PathParam和@QueryParam區(qū)別簡(jiǎn)析

    @PathParam和@QueryParam區(qū)別簡(jiǎn)析

    這篇文章主要介紹了@PathParam和@QueryParam區(qū)別,分享了相關(guān)實(shí)例代碼,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Eclipse 項(xiàng)目出現(xiàn)錯(cuò)誤(紅色嘆號(hào))解決方法

    Eclipse 項(xiàng)目出現(xiàn)錯(cuò)誤(紅色嘆號(hào))解決方法

    這篇文章主要介紹了Eclipse 項(xiàng)目出現(xiàn)錯(cuò)誤(紅色嘆號(hào))解決方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • IDEA 格式化SQL代碼技巧分享

    IDEA 格式化SQL代碼技巧分享

    這篇文章主要介紹了IDEA 格式化SQL代碼技巧分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • springboot實(shí)現(xiàn)返回視圖而不是string的方法

    springboot實(shí)現(xiàn)返回視圖而不是string的方法

    這篇文章主要介紹了springboot實(shí)現(xiàn)返回視圖而不是string的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring基于ProxyFactoryBean創(chuàng)建AOP代理

    Spring基于ProxyFactoryBean創(chuàng)建AOP代理

    這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論