用Ant構建指令碼(1)
用Ant構建指令碼(1)
首先宣告,本文基於Apache Ant官方網站http://ant.apache.org/manual/的《Apache Ant 1.7.0Beta2 Manual》翻譯而得。
一、Apache Ant簡介
1、Ant是Java開源組織Apache的一個專案,是一個基於Java的build工具。其構建指令碼有4個不同的實現:
(1)Sun Microsystems公司的參考實現;
(2)SolarMetric的Kodo實現;
(3)Libelis的Lido實現;
(4)SignSoft的IntelliBO實現。
其實只要實現提供Ant可以使用的命令列工具,就可以實現增加新的指令碼。
Ant可以通過其指令碼語言,自動將專案檔案複製到某個目錄、開發專案,或者生成一些程式碼、執行SQL語言。總之,Ant可以幫助程式設計師完成專案開發中除了開發程式碼以外的大部分輔助性的工作。很多IDE工具能自動生成指令碼,但總有些缺點,如不能完成使用者的自定義的要求。
2、Ant的優點:
(1)語法簡單易學,指令碼使用XML格式編寫;
(2)易於使用,構建過程自動化;
(3)跨平臺,Java類路徑和目錄結構都是以可移植的方式進行處理;
(4)速度快,像編譯和打包這樣的Java常規工作都可以在Ant的JVM中進行,節省了啟動其他JVM所耗費的時間;
(5)整合JUnit,適合進行XP開發模式所提倡的單元測試;
(6)易於使用Java進行功能擴充套件;
(7)支援J2EE部署;
(8)善於Java專案的部署工作;
(9)已經成為大多數開源專案的標準構建工具;
(10)由於Ant支援測試和部署,因此可以用於“編譯-測試-部署”的過程。
3、Ant的安裝:兩種方式:
(1)用已編譯好的binary檔案安裝Ant;
(2)用原始碼自己編譯Ant。
要想自己編譯Ant,需將一個JAXP相容的XML解析器(parser)放在CLASSPATH環境變數中。binary形式的Ant包括最新版的Apache Crimson XML解析器。如想使用其他的JAXP相容的解析器,需要從Ant的lib目錄中刪掉jaxp.jar以及crimson.jar,然後將自己的解析器的JAR檔案放到Ant的lib目錄中或放在CLASSPATH環境變數中。
安裝有三個步驟:
(1)將下載的binary壓縮包解壓到所需目錄;
(2)將bin目錄加入path環境變數;
(3)設定ANT_HOME環境變數,指向Ant目錄;
(4)設定JDK的環境變數。
在windows下的安裝非常簡單,所以本文以在UNIX下安裝Ant為例,假定安裝在/usr/local/ant目錄下,設定環境變數如下:
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.5.0
export PATH=${PATH}:${ANT_HOME}/bin
4、Ant命令列使用方法:
ant [options] [target1[target2[target3…]]]
其中,options引數和意義:
-help:顯示描述antml及其選項的幫助資訊;
-projecthelp:顯示包含在構建檔案種的、所有使用者編寫的構建文件,也即各個<target>中description屬性的文字,以及包含在<description>元素中的任何文字;
-version:顯示Ant及其版本資訊,然後退出;
-quiet:阻止不是由構建檔案中的echo任務所產生的大多數資訊;
-verbose:顯示構建過程中每個操作的詳細資訊,此選項與debug選項只能二選其一;
-debug:顯示Ant和任務釋出人員已經標誌為除錯資訊的資訊;
-emacs:對日誌訊息進行格式化;
-logfile:將日誌輸出重定向到指定的檔案;
-logger:指定一個類來處理Ant的日誌記錄,所指定的類必須實現org.apache.tools.ant.BuildLogger介面;
-listener:為Ant宣告一個監聽器,並增加到其監聽者列表中;
-buildfile:指定Ant需要處理的構建檔案,預設的檔案為build.xml;
-find:指定Ant需要處理的構建檔案,如果找不到,則到父目錄中去搜尋,直到系統根目錄為止。
5、預設的專案目錄
常用的專案目錄:
bin:公共的二進位制檔案,以及執行指令碼;
build:臨時建立的檔案,如類檔案等;
dist:目標輸出檔案,如生成jar檔案等;
doc/javadocs:文件;
lib:需要匯出的java包;
src:原始檔。
6、構建檔案
Ant的build檔案包含一個根節點project,每個project定義了至少一個或多個target,每個target又是一系列task的集合。
每個task是一段可被執行的程式碼,學習Ant的過程其實就是掌握這大量的task。
相關文章
- Jenkins實現持續整合 使用Ant指令碼構建ios專案Jenkins指令碼iOS
- esbuild 構建油猴指令碼UI指令碼
- shell-----構建基本指令碼指令碼
- 構建dubbo分散式平臺-maven構建ant-framework核心程式碼Base封裝分散式MavenFramework封裝
- Gradle系列之構建指令碼基礎Gradle指令碼
- vue 構建環境切換指令碼Vue指令碼
- iOS自動構建打包釋出指令碼iOS指令碼
- Day1: 用Github管理Pipeline指令碼Github指令碼
- Vue.js原始碼解析-從scripts指令碼看vue構建Vue.js原始碼指令碼
- oracle建庫指令碼Oracle指令碼
- 不得不學之「 Gradle」 ③ 構建指令碼基礎Gradle指令碼
- 使用node構建檔案重新命名指令碼工具指令碼
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- 修改gradle指令碼,加速spring4.1原始碼編譯構建速度Gradle指令碼Spring原始碼編譯
- jacoco 使用 ant 構建後沒有輸出任何東西
- 如何使用Docker構建執行時間較長的指令碼Docker指令碼
- 使用 Vite 外掛開發構建 Tampermonkey 使用者指令碼Vite指令碼
- 010 Rust 網路程式設計,cargo 構建指令碼介紹Rust程式設計Cargo指令碼
- 預處理指令、構建大型程式
- 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- 1. 構建您的第一個應用
- 從零開始構建Web應用-PART 1Web
- 2.4.12 Step 11: 執行指令碼來構建資料字典檢視指令碼
- weblogic指令碼工具WLST(1)Web指令碼
- HarmonyOS:基於Web元件構建網路應用(1)Web元件
- 使用JHipster構建Spring和React構建電子商務應用程式原始碼 -DEVSpringReact原始碼dev
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- Vue(1):用Vue-cli構建Vue3專案Vue
- 構建 API 應用API
- Shell指令碼應用(三)指令碼
- 用VIPER構建iOS應用iOS
- Judo:使用無程式碼構建原生應用體驗
- 1-ANT-安裝與配置
- shell指令碼學習筆記-1指令碼筆記
- cocos-creator 指令碼邏輯-1指令碼
- 寫好shell指令碼的8個建議指令碼
- 指令集體系結構_計算機體系結構:指令程式碼計算機
- 9個實用shell指令碼指令碼
- appium 安卓應用指令碼APP安卓指令碼