国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java自動化工具Ant的基礎使用教程

Java自動化工具Ant的基礎使用教程

2020-04-06 11:08時之沙 JAVA教程

這篇文章主要介紹了Java自動化工具Ant的基礎使用教程,例子在Windows系統下操作演示,講解了Ant基本的文件操作和屬性,需要的朋友可以參考下

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

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

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

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

下面是一個最基本的生成文件:

?
1
2
3
4
5
<?xml version="1.0"?>
 <project default="init">
 <target name="init">
  </target>
</project>

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

Java自動化工具Ant的基礎使用教程

 由于Ant構建時需要默認有build.xml文件,因此有如上的提示,至此,說明Ant的環境已經配置成功.

3. 使用Ant創建一個名為HelloWorld的文件夾:
 首先需要編輯build.xml:

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

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

Java自動化工具Ant的基礎使用教程

 4. 也可以使用ant創建多級嵌套的文件目錄
  只需要在build.xml文件中進行修改:

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

 
5. 刪除如上的多級目錄:

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

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

再看一個示例XML文件:  

?
1
2
3
4
5
6
7
8
9
10
<?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 注釋可以使用在整個生成文件中以提高清晰性。而且,Ant 定義了它自己的description 元素和 description 屬性,它們可用于提供更結構化的注釋。

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

定義與使用屬性:

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

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

復制代碼 代碼如下:
${metal}

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

 

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


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

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

用于 location 屬性的路徑分隔字符將被轉換為當前平臺的正確格式;而且由于文件名是相對的,它被認為是相對于項目的基目錄。我們同樣可以容易地寫為下面這樣:

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

這個標簽的兩個版本都會在不同的平臺具有相同的行為.

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

?
1
2
3
4
<target name="init"/>
<target name="preprocess" depends="init"/>
<target name="compile" depends="init,preprocess"/>
<target name="package" depends="compile"/>

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成年网站视频 | 久久久精品综合 | 人人插人| 久久精品国产一区二区三区不卡 | 久久综合九色综合欧美狠狠 | 日韩中文字幕在线播放 | 一区二区三区不卡视频 | 国产精品视频一二三区 | 国产性猛交xxxx免费看久久 | 天天操一操 | 亚洲精品视频免费观看 | 手机av在线 | 中文在线视频 | 色性视频 | 蜜桃视频成人在线观看 | 在线欧美亚洲 | 久久国产精品久久久久久久久久 | 国产在线不卡观看 | 国产精品久久久久久久久 | 永久免费av | 久久综合一区 | 久久高清精品 | 在线91| 色视频在线免费观看 | 男人天堂网av | 97色在线观看免费视频 | 日韩精品三区 | 亚洲精选一区二区 | 羞羞视频在线播放 | 欧美在线a | 性色av一区二区三区红粉影视 | 国产午夜精品一区二区三区视频 | 日本不卡高字幕在线2019 | 欧美a网 | 高清一区二区三区 | 欧美伦理一区二区三区 | 亚洲国产婷婷香蕉久久久久久99 | 国内精品一区二区三区 | 国产精品色一区二区三区 | 日韩精品一区二区三区四区五区 | 国产成人久久 |