Lession 2 : 跨越 IDE 的 Apache Ant

news/2025/2/26 4:38:48

Java 最基礎的編譯工具就是 JDK 之中的 javac 這個編譯器,但是往往在開發一個大型的專案之時,我們通常會利用 IDE 來完成相關的程式開發、除錯、編譯及包裝的動作,進而與一些應用伺服器或是資料庫做相關的整合。但是,往往開發習慣的不同,Java 之中有許多不錯的 IDE 工具讓大家使用,但是,該如何將一個專案讓大家都可以順利的匯入,我們可以利用 apache ant 這個小工具,另外,更可以利用 ant 這隻小螞蟻配合其他小工具進行連續性的軟體工程整合開發 (Continuous Integration : MartinFlower)[] 。

其實講述 ant 操作的書籍已經很多了,我個人建議僅需要從 http://ant.apache.org 下載 ant 的 Binary 檔案,解壓縮到一個目錄後( 例如 c:/apache-ant-1.6.5/ ) 並且設定環境變數 ANT_HOME = c:/apache-ant-1.6.5/ 以及 PATH 加上 %ANT_HOME%/bin,加上參考著範例直接練習就足夠應付大多數的狀況了。

不同於如 make其他編譯工具,ant 採用了 XML 作為執行的環境設定參考。當你執行 ant 的同時,他會先去尋找該執行目錄之下是否存放著 build.xml ,或是你可以強制 ant –f setup.xml 來執行 setup.xml 這個 ant 參考檔案。另外,通常我們除了使用 build.xml 來設定工作的項目之外,我們還會設定一個 build.properties,這個檔案通常會因為環境的不同進行一些資料庫或某些伺服器的名稱與位置設定等。

我們下載上次講到 jakarta commons-configuration 的 source code,解壓縮之後,你就應該可以在根目錄之中,察看到 build.xml 這個檔案,我們就來這個來做範例吧。

一個 xml 檔案最上方,通常會有對這份文件的宣告,如果有中文建議以 UTF-8 並且存成 UTF-8 的檔案。



所有的 build.xml 之中,都匯定義 ,我們通常還會設定預設 (default)的工作目標 (target) 以及工作的目錄 (basedir)。




很明顯的,我們可以看到預設工作目標是 “jar” 這個 target,所以我們可以檢查到




這時候,便可以發現 jar 和 compile 與 test 是具有相依性 (depends) ,換句話說,當我們在執行 jar 之前,會先去執行 compile 與 test 這個 target,這種繼承關係,就是 ant 能夠大受歡迎的地方。

至於到了 target 之中,我們到底要執行什麼任務 (task),這就必須了解,ant 能夠協助我們完成什麼。

* 檔案壓縮的任務 : , , 等等
* 稽核檢驗的任務 : , 等等
* 檔案編譯的任務 : , 等等
* 系統部署的任務 : // 目前大多應用伺服器都支援熱部署
* 文件產生的任務 : , 等等
* EJB 專屬的任務 : , 等等
* 程式執行的任務 : , , 等等
* 檔案目錄的任務 : , , 等等
* 日誌記錄的任務 :
* 郵件寄發的任務 :
* 其他工具的任務 : ,

http://www.niftyadmin.cn/n/3653802.html

相关文章

Zabbix 如何实现邮件报警通知以及免费短信报警通知

前提条件:(1) zabbix服务器端已经成功安装并且运行。(2) zabbix客户端已经成功建立并且运行。1 下载并且安装msmtp软件Wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/downloadtar jxvf msmtp-1.4.32.tar.bz2cd msmtp-1.4.32…

台灣的 Web 2.0

自從無名小站 ( wretch.cc ) 被 Yahoo! 收購後, 投資客紛紛開始尋找下個標的, 有技術有抱負的團隊也紛紛提出許多有趣且前衛的 Web 2.0 網站.台灣經濟部技術處與資策會都提出有關 Web2.0 的補助方案. http://www.web20.org.tw/wp/ideas/index.htm 只要有創意點子, 就可以透過輔…

Struts 原理与应用(一)

本文是俺在公司技术会议上的演讲提纲算是一个小教程吧。Struts 原理与应用 2003年12月1日Chapter 1: MVC Architecture 介绍Struts的理论基础,MVC架构Chapter 2: J2EE N-tiers Structure介绍J2EE的n层结构以及Struts所处的位置Chapter 3: Struts Configuration Stru…

Struts原理与应用(三)

Chapter 5: Struts Work Flow Struts principle and practice 上图是Struts的工作流程,前边我们提到,所有的请求都提交给ActionServlet来处理。 ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给Req…

mycat 瑞士军刀mycat-web详解

引言mycat从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信…

JAAS 基本概念 (1/3)

JAAS ( Java Authentication and Authorization Services )簡單來說就是專門處理 身份驗證 ( authentication ) 及 權限管控 ( authorization ) 的標準服務目前已經納入 j2sdk 1.4 正式成為標準的安全性模組 主要的幾個元件有分為 通用性 ( common ), 身份驗證 ( authenticatio…

web.xml 中的 security-role 的運作剖析

如果在 tomcat 之上執行程式你撰寫的 security-role 到底有沒有用呢 ?當呼叫 isUserInRole 其實是去呼叫 RealmBase 中的 hasRole 透過 GenericPrincipal 去檢查GenericPrincipal gp (GenericPrincipal) principal;boolean result gp.hasRole(role);return result;而 Princi…

MySQL 行列转换变化各种方法实现总结(行变列报表统计 列变行数据记录统计等)

前言:mysql行列变化,最难的就是将多个列变成多行,使用的比较多的是统计学中行变列,列变行,没有找到现成的函数或者语句,所以自己写了存储过程,使用动态sql来实现,应用业务场景&#…