使用Ant進行Java開發

使用Ant進行Java開發

《使用Ant進行Java開發》是電子工業出版社出版的圖書,作者是ErikHatcher,SteveLoughran。

基本信息

內容簡介

使用Ant進行Java開發 使用Ant進行Java開發
一個備受讚譽的java構建工具。它以其易於使用、與平台無關、迎合如今項目自動測試和自動部署的需要,成為許多項目構建過程的重要環節。目前它已成為所有主要開源java項目採用的獨立工具,並已成了事實上的標準。
本書作者是被samruby先生譽為“兩個最了解ant的人”。他們將以最佳的方式給你講授ant,從一個簡單的構建定義開始,然後展示加入你的項目所需的那些功能。如果你是一個初學ant的人,本書將系統帶你領略大多數java項目都要經歷的核心步驟:編譯、測試、執行、打包以及分發。如果你是一個富有經驗的ant用戶,本書能教你如何使用ant“增強系統的能力”。所以不管你使用ant的經驗如何,都能從本書中學到很多東西,你的軟體項目也將因為使用ant作為構建過程的基礎而受益匪淺。
本書分為三個部分,第1部分提供了ant及其功能的基礎知識。第2部分,每章討論一個專題,在其中探討了多種項目,並介紹了ant在其中扮演的關鍵角色。第3部分是為那些想突破既有能力限制的高級用戶撰寫的內容。

目錄

譯者序

前言
致謝
關於本書
關於作者
關於封面
學習
第1章ant簡介
何為
何為構建過程,我們為什麼需要它
為什麼我們認為ant是一個優秀的構建工具
的核心概念
示例工程
為什麼要使用
集成開發環境
其他構建工具
立刻就來運行吧
的演化史
與軟體開發方法
統一過程
示例工程
文檔搜尋引擎—ant示例工程
太棒了,可是ant能否……
超越Java開發
發布引擎
簡單的工作流引擎
以及其他語言
小結
第2章開始ant之旅
定義我們的第一個工程
第一步:檢查工具是否已經就緒
第二步:編寫你的第一個ant構建檔案
測試構建檔案
第三步:運行你的第一個構建
如果構建失敗
查看更多構建細節
第四步:強制結構
布置源檔案路徑
布置構建目錄
布置發布目錄
創建構建檔案
目標依賴
運行新的構建檔案
重新運行構建
如何處理命令行上的多個目標
第五步:運行我們的程式
為什麼要在ant內部運行
添加執行目標
運行新的目標
命令行選項
指定要運行的構建
控制所提供的信息量
獲取項目信息
最終的構建檔案
小結
第3章理解ant的datatypes和特性
入門
概述
特性概述
通過[javac]介紹datatype和特性
路徑(path)
檔案集(fileset)
檔案集舉例
默認排除項(defaultexcludes)
模式集(patternset)
選擇器(selector)
元素命名
過濾集(filterset)
構建運行時在檔案中插入日期戳
過濾鏈(filterchain)和過濾閱讀器(filterreader)3.10.1identity映射器映射器
映射器
映射器
映射器
映射器
其他
特性(property)
通過[property]任務設定特性
任務怎樣區別於其他任務3.12.3檢查資源的可用性:
忽略不必要的步驟:[uptodate]以節省時間3.12.5用[condition]測試條件在命令行中設定特性
用[tstamp]創建構建的時間戳
從xml檔案中載入特性
使用特性控制
有條件地執行
有條件的patternset包含/排除(inclusion/exclusion)3.13.3有條件的構建失敗引用
特性和引用
為嵌套的模式集使用引用
最佳實踐
小結
第4章使用junit進行測試
重構(refactoring)
()測試
入門
編寫測試用例
運行測試用例
斷言預期的結果
測試用例生命周期
編寫測試組件
獲取及安裝
擴展
在我們的應用程式中使用單元測試
先編寫測試
在測試過程中處理外部資源
任務—
組織目錄以安放測試
配置junit到構建過程
測試失敗意味著構建失敗
捕獲測試結果
運行多重測試
創建你自己的結果(result)
生成測試結果報告
生成報告且允許當測試失敗時中止構建
從命令行運行單個測試用例
初始化測試環境
其他測試問題
短路測試
處理大量測試
最佳實踐
小結
第5章運行程式
為什麼需要運行外部程式
運行java程式
介紹[java]任務
設定
參數
定義系統特性
在新jvm中運行程式
設定環境變數
控制新
使用failonerror處理錯誤
執行jar檔案
調用第三方程式
在調用之前探查java程式
設定逾時
使用[exec]啟動本地程式
設定環境變數
處理錯誤
處理逾時
製作並運行一個shell命令
在程式被調用之前進行探測
使用[apply]進行批量執行
處理輸出
執行的限制
最佳實踐
小結
第6章工程打包
移動、複製和刪除檔案
如何刪除檔案
怎樣複製檔案
如何移動檔案
過濾
為打包做準備
構建發布代碼及其文檔
加入數據檔案
準備編制文檔
準備安裝腳本和文檔
為重發布準備庫
創建存檔檔案
檔案
創建一個jar檔案
測試jar檔案
創建jar清單
向jar中增加額外元數據
檔案的最佳實踐
簽署jar檔案
創建zip檔案
創建二進制發布
創建原始碼發布
合併zip檔案
檔案的最佳實踐
創建tar檔案
使用war檔案創建web應用程式
打包測試
小結
第7章部署
典型部署問題
再看這些任務
部署所用的工具
用於部署的任務
使用[ftp]進行檔案傳輸
探測伺服器的有效性
使用[sleep]讓構建暫停
的email任務
使用[get]獲取遠程檔案
使用任務進行部署
基於ftp的打包應用程式發布
通過[input]任務獲得信息
基於email的打包應用程式發布
本地部署到
的管理
使用ant部署到
遠程部署到
插曲:使用[antcall]調用目標
在部署中使用
對部署進行測試
小結
第8章綜合運用
我們目前的應用程式
構建定製的ant任務庫
載入跨工程的共用特性
處理版本依賴
安裝庫的新版本
構建檔案的哲學
一開始就要把結果放在心上
將測試納入構建
支持自動部署
使其可移植
允許用定製
小結
套用
第9章在開發項目中使用
設計基於ant的構建過程
分析你的項目
建立核心構建檔案
完善構建檔案
移植到
移植的十個步驟
從基於make的項目移植
從基於ide的項目移植
主構建:管理大型項目
重構構建檔案
引入[ant]任務
示例:基本主構建檔案
設計可升級的靈活主構建檔案
管理子工程構建
如何控制子工程的特性
從主構建檔案中繼承特性和引用
在[ant]里聲明特性和引用
通過xml檔案片斷共享特性
使用xml檔案片斷共享目標
創建可重用的庫構建檔案
展望未來:讓大型項目支持演化
項目的最佳實踐
管理庫
實現過程
小結
第10章超越ant的核心任務
理解任務的種類
那么,什麼是“可選”任務
的主要可選任務
為什麼需要第三方任務
可選任務實際演練
操控特性檔案
為構建期間添加音頻反饋和視覺反饋
添加依賴關係檢查
用javacc進行語法解析
置換正則表達式
使用軟體配置管理任務
使用第三方任務
用[taskdef]定義任務
幾個知名的第三方任務
—對象-關係映射
任務
項目間共享任務定義
最佳實踐
小結
第11章
安裝
生成to-do列表
的體系結構
的ant任務
模板化
如何工作
編寫自己的xdoclet模板
代碼生成
按類生成與單檔案生成的比較
過濾要處理的類
高級
定製子任務
建立定製標記處理器
的發展方向
與c#的比較
展望java的未來:jsr175和
最佳實踐
依賴關係檢查
小結
第12章web開發
應用程式有什麼不同
使用標記庫
建立標記庫
集成標記庫
使用ant開發標記庫小結
編譯jsp網頁
安裝[jspc]任務
使用[jspc]任務
為部署而編譯
其他jsp編譯任務
定製web應用程式
基於filterset的定製
利用xdoclet定製部署描述檔案
定製war檔案中的庫
生成靜態內容
生成新內容
建立新檔案
修改既有檔案
使用httpunit測試web應用程式
編寫httpunit測試
編譯測試
準備從ant中運行httpunit測試
運行httpunit測試
整合測試
的局限性
利用cactus進行伺服器端測試
從ant視角看
如何運作
我們的測試用例登場了
小結
小結
第13章使用
導言:關於xml庫
驗證
當檔案不合法的時候
解析
支持其他的xml驗證機制
利用XSLT轉換
使用
由xml生成pdf檔案
——一個第三方的轉換任務
生成xml格式的構建日誌
樣式表
輸出檔案
構建日誌的後處理
將xml數據載入ant特性
處理的將來
小結
第14章
概述
的多種類型
廠商相關的情形
一個簡單的ejb構建
使用ant的ejb任務
使用
廠商相關的[ejbjar]處理
使用xdoclet進行ejb開發
子任務
的@標記
利用xdoclet支持不同的套用伺服器
特性替換
部署到J2EE套用伺服器
一個完整的ejb例子
工程的最佳實踐
小結
第15章使用web服務
何謂web服務,何謂
向java增加web服務能力
用ant創建一個soap客戶端應用程式
準備我們的構建檔案
創建代理類
使用soap代理類
編譯soap客戶端
運行soap服務
回顧soap客戶端創建
用axis和ant創建一個soap服務
構建web服務的簡單方法
向既有web應用程式添加web服務
配置web應用程式
添加庫
在構建中包含soap服務
測試伺服器上的需要類
實現soap端點
部署web服務
為soap服務編寫客戶端
導入
實現測試
編寫java客戶端
什麼是互操作,為什麼它成其為問題
構建一個c#客戶端
條件探測
在c#中導入
編寫c#客戶端類
構建c#客戶端
運行c#客戶端
回顧c#客戶端的構建過程
構建web服務的嚴格方法
回顧web服務開發
通過soap調用
小結
第16章持續集成
利用作業系統調度ant構建
方法
版本
使用腳本
它如何工作
這就是cruise——讓構建管理器工作起來
報告構建日誌
郵件通知與構建標註
小結
提示與技巧
的優點和缺點
讓anthill轉起來
是如何工作的
小結
安裝和運行
如何運作
小結
持續集成工具的比較
小結
第17章開發本地代碼
本地代碼的挑戰
使用既有的構建工具
交給ide去做
使用
引入[cc]任務
安裝任務
添加一個編譯器
任務快速入門
在ant中構建一個JNI庫
構建jni庫的步驟
編寫java存根
編寫c++類
編譯c++原始碼
部署和測試庫
實現跨平台
移植c++源檔案
擴展構建檔案
移植測試
移植代碼
深入[cc]的細節
定義預處理宏
通過[libset]連結到庫
配置編譯器和連結器
定製連結器
發布本地庫
小結
第18章成品部署
不同套用伺服器的挑戰
迥然不同的底層行為
不同的java運行時行為
使用不同的api實現進行複製
與供應商相關的庫
部署描述檔案
與伺服器相關的部署過程
與伺服器相關的管理
與操作員齊心協力
操作員用例
操作員測試
操作員缺陷跟蹤
將操作員與構建過程集成
利用ant迎接部署的挑戰
建立單一的原始碼樹
為創建檔案檔案而編寫統一的目標
運行伺服器端ant進行部署
自動化上載和部署過程
的強大部署工具介紹
任務
任務
使用[telnet]進行遠程控制
建立一個成品的部署過程
計畫
目錄結構
配置檔案
構建檔案
遠程構建檔案
為安裝到伺服器編寫構建檔案
上載至遠程伺服器
讓遠程部署轉起來
對部署過程進行回顧
部署至特定套用伺服器

套用伺服器
其他伺服器
驗證部署
創建時間戳檔案
將時間戳檔案添加到應用程式中
測試時間戳
最佳實踐
小結
擴展
第19章編寫ant任務
什麼是一個真正的ant任務
世界上最簡單的ant任務
在同一個構建過程中編譯和套用一個任務19.1.3任務的生命周期入門
任務如何獲得數據
設定屬性
支持嵌套元素
支持
允許自由格式文本
建立一個基本的anttask子類
為任務添加屬性
處理元素文本
操作
錯誤處理
測試ant任務
執行外部程式
處理進程輸出
本地執行小結
在任務中執行java程式
創建java程式新進程的示例
支持任意命名的元素和屬性
構建任務庫
支持多版本
小結
第20章進一步擴展
在ant中使用腳本
約定的隱含對象
腳本使用小結
監聽者與日誌工具
編寫一個定製監聽者
使用log4j的日誌功能
編寫一個定製日誌工具
使用
開發定製的
創建定製的
在構建中使用定製
實現定製的
編寫定製filter的
小結
附錄a安裝
附錄bant之xml入門
附錄cide集成
附錄dant風格的要素
附錄eant任務參考
資源
索引

相關詞條

相關搜尋

熱門詞條

聯絡我們