注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)使用Ant進(jìn)行Java開(kāi)發(fā)

使用Ant進(jìn)行Java開(kāi)發(fā)

使用Ant進(jìn)行Java開(kāi)發(fā)

定 價(jià):¥69.00

作 者: (美)Erik Hatcher,(美)Steve Loughran著;劉永丹,陳洋譯;劉永丹譯
出版社: 電子工業(yè)出版社
叢編項(xiàng): Java人的工具箱系列
標(biāo) 簽: Java

ISBN: 9787121016837 出版時(shí)間: 2005-09-01 包裝: 平裝
開(kāi)本: 23cm 頁(yè)數(shù): 672 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  Ant,一個(gè)備受贊譽(yù)的Java構(gòu)建工具。它以其易于使用、與平臺(tái)無(wú)關(guān)、迎合如今項(xiàng)目自動(dòng)測(cè)試和自動(dòng)部署的需要,成為許多項(xiàng)目構(gòu)建過(guò)程的重要環(huán)節(jié)。目前它已成為所有主要開(kāi)源Java項(xiàng)目采用的獨(dú)立工具,并已成了事實(shí)上的標(biāo)準(zhǔn)。 本書(shū)作者是被SAM RUBY先生譽(yù)為“兩個(gè)最了解ANT的人”。他們將以最佳的方式給你講授A(yíng)nt,從一個(gè)簡(jiǎn)單的構(gòu)建定義開(kāi)始,然后展示加入你的項(xiàng)目所需的那些功能。如果你是一個(gè)初學(xué)Ant的人,本書(shū)將系統(tǒng)帶你領(lǐng)略大多數(shù)Java項(xiàng)目都要經(jīng)歷的核心步驟:編譯、測(cè)試、執(zhí)行、打包以及分發(fā)。如果你是一個(gè)富有經(jīng)驗(yàn)的Ant用戶(hù),本書(shū)能教你如何使用Ant“增強(qiáng)系統(tǒng)的能力”。所以不管你使用Ant的經(jīng)驗(yàn)如何,都能從本書(shū)中學(xué)到很多東西,你的軟件項(xiàng)目也將因?yàn)槭褂肁nt作為構(gòu)建過(guò)程的基礎(chǔ)而受益匪淺。 本書(shū)分為三個(gè)部分,第1部分提供了Ant及其功能的基礎(chǔ)知識(shí)。第2部分,每章討論一個(gè)專(zhuān)題,在其中探討了多種項(xiàng)目,并介紹了Ant在其中扮演的關(guān)鍵角色。第3部分是為那些想突破既有能力限制的高級(jí)用戶(hù)撰寫(xiě)的內(nèi)容。

作者簡(jiǎn)介

  ErikHatcher,一位Ant項(xiàng)目提交者,目前正主持jGurus的AntFAQjGuru,他在那里回答世界上最棘手的Ant問(wèn)題。Erik居住在Virginia的Charlottesville。SteveLoughran,也是一位Ant的提交者,就職于HewlettPackard,負(fù)責(zé)設(shè)計(jì)和建立成品WebService。Steve居住在Oregon的Corvallis。

圖書(shū)目錄

譯者序 v
序 xxi
前言 xxiii
致謝 xxv
關(guān)于本書(shū) xxvii
關(guān)于作者 xxxii
關(guān)于封面 xxxiii
Part 1 學(xué)習(xí)Ant
第1章 Ant簡(jiǎn)介 3
1.1 何為Ant 3
1.1.1 何為構(gòu)建過(guò)程,我們?yōu)槭裁葱枰?4
1.1.2 為什么我們認(rèn)為Ant是一個(gè)優(yōu)秀的構(gòu)建工具 4
1.2 Ant的核心概念 5
1.2.1 示例工程 7
1.3 為什么要使用ANT 10
1.3.1 集成開(kāi)發(fā)環(huán)境 10
1.3.2 Make 11
1.3.3 其他構(gòu)建工具 13
1.3.4 立刻就來(lái)運(yùn)行吧 14
1.4 Ant的演化史 14
1.5 Ant與軟件開(kāi)發(fā)方法 16
1.5.1 XP(eXtreme Programming) 16
1.5.2 Rational統(tǒng)一過(guò)程 17
1.6 示例工程 17
1.6.1 文檔搜索引擎—Ant示例工程 18
1.7 太棒了,可是ANT能否…… 19
1.8 超越JAVA開(kāi)發(fā) 21
1.8.1 Web 發(fā)布引擎 21
1.8.2 簡(jiǎn)單的工作流引擎 21
1.8.3 Microsoft .NET 以及其他語(yǔ)言 21
1.9 小結(jié) 22
第2章 開(kāi)始Ant之旅 23
2.1 定義我們的第一個(gè)工程 23
2.2 第一步: 檢查工具是否已經(jīng)就緒 24
2.3 第二步: 編寫(xiě)你的第一個(gè)Ant構(gòu)建文件 24
2.3.1 測(cè)試構(gòu)建文件 25
2.4 第三步: 運(yùn)行你的第一個(gè)構(gòu)建 26
2.4.1 如果構(gòu)建失敗 27
2.4.2 查看更多構(gòu)建細(xì)節(jié) 29
2.5 第四步:強(qiáng)制結(jié)構(gòu) 31
2.5.1 布置源文件路徑 32
2.5.2 布置構(gòu)建目錄 33
2.5.3 布置發(fā)布目錄 34
2.5.4 創(chuàng)建構(gòu)建文件 35
2.5.5 目標(biāo)依賴(lài) 35
2.5.6 運(yùn)行新的構(gòu)建文件 36
2.5.7 重新運(yùn)行構(gòu)建 37
2.5.8 Ant如何處理命令行上的多個(gè)目標(biāo) 38
2.6 第五步: 運(yùn)行我們的程序 39
2.6.1 為什么要在A(yíng)nt內(nèi)部運(yùn)行 39
2.6.2 添加執(zhí)行目標(biāo) 40
2.6.3 運(yùn)行新的目標(biāo) 40
2.7 ANT 命令行選項(xiàng) 41
2.7.1 指定要運(yùn)行的構(gòu)建 42
2.7.2 控制所提供的信息量 42
2.7.3 獲取項(xiàng)目信息 44
2.8 最終的構(gòu)建文件 44
2.9 小結(jié) 46
第3章 理解Ant的datatypes和特性 47
3.1 入門(mén) 48
3.1.1 Datatype 概述 48
3.1.2 特性概述 48
3.2 通過(guò)<JAVAC>介紹DATATYPE和特性 49
3.3 路徑(Path) 51
3.4 文件集(Fileset) 52
3.4.1 文件集舉例 53
3.4.2 默認(rèn)排除項(xiàng)(Default excludes) 53
3.5 模式集(Patternset) 54
3.6 選擇器(or) 56
3.7 DATATYPE元素命名 57
3.8 過(guò)濾集(Filterset) 58
3.8.1 構(gòu)建運(yùn)行時(shí)在文件中插入日期戳 58
3.9 過(guò)濾鏈(filterchain)和過(guò)濾閱讀器(FilterReader) 59
3.10 Mapper 61
3.10.1 Identity映射器 61
3.10.2 Flatten 映射器 62
3.10.3 Merge 映射器 62
3.10.4 Glob 映射器 63
3.10.5 Regexp 映射器 63
3.10.6 Package映射器 64
3.11 其他ANT DATATYPE 65
3.11.1 ZipFileset 65
3.11.2 Dirset 65
3.11.3 Filelist 65
3.11.4 ClassFileset 66
3.12 特性(Property) 66
3.12.1 通過(guò)<property>任務(wù)設(shè)置特性 67
3.12.2 <property> 任務(wù)怎樣區(qū)別于其他任務(wù) 70
3.12.3 檢查資源的可用性:<available> 70
3.12.4 忽略不必要的步驟:<uptodate> 以節(jié)省時(shí)間 72
3.12.5 用<condition>測(cè)試條件 72
3.12.6 在命令行中設(shè)置特性 74
3.12.7 用<tstamp>創(chuàng)建構(gòu)建的時(shí)間戳 75
3.12.8 從XML文件中載入特性 76
3.13 使用特性控制Ant 77
3.13.1 有條件地執(zhí)行 target 77
3.13.2 有條件的patternset包含/排除(inclusion/exclusion) 78
3.13.3 有條件的構(gòu)建失敗 78
3.14 引用 79
3.14.1 特性和引用 80
3.14.2 為嵌套的模式集使用引用 81
3.15 最佳實(shí)踐 82
3.16 小結(jié) 83
第4章 使用JUnit進(jìn)行測(cè)試 85
4.1 重構(gòu)(Refactoring) 86
4.2 JAVA MAIN() 測(cè)試 86
4.3 JUNIT 入門(mén) 87
4.3.1 編寫(xiě)測(cè)試用例 88
4.3.2 運(yùn)行測(cè)試用例 88
4.3.3 斷言預(yù)期的結(jié)果 88
4.3.4 測(cè)試用例生命周期 90
4.3.5 編寫(xiě)測(cè)試組件 90
4.3.6 獲取及安裝JUnit 91
4.3.7 擴(kuò)展JUnit 91
4.4 在我們的應(yīng)用程序中使用單元測(cè)試 92
4.4.1 先編寫(xiě)測(cè)試 92
4.4.2 在測(cè)試過(guò)程中處理外部資源 93
4.5 JUNIT任務(wù)—<JUNIT> 94
4.5.1 組織目錄以安放測(cè)試 94
4.5.2 配置JUnit到構(gòu)建過(guò)程 95
4.6 測(cè)試失敗意味著構(gòu)建失敗 97
4.6.1 捕獲測(cè)試結(jié)果 97
4.6.2 運(yùn)行多重測(cè)試 99
4.6.3 創(chuàng)建你自己的結(jié)果(result)formatter 100
4.7 生成測(cè)試結(jié)果報(bào)告 100
4.7.1 生成報(bào)告且允許當(dāng)測(cè)試失敗時(shí)中止構(gòu)建 102
4.7.2 從命令行運(yùn)行單個(gè)測(cè)試用例 103
4.7.3 初始化測(cè)試環(huán)境 103
4.7.4 其他測(cè)試問(wèn)題 104
4.8 短路測(cè)試 105
4.8.1 處理大量測(cè)試 108
4.9 最佳實(shí)踐 109
4.10 小結(jié) 110
第5章 運(yùn)行程序 111
5.1 為什么需要運(yùn)行外部程序 111
5.2 運(yùn)行JAVA程序 112
5.2.1 介紹<java>任務(wù) 113
5.2.2 設(shè)置classpath 114
5.2.3 參數(shù) 115
5.2.4 定義系統(tǒng)特性 116
5.2.5 在新JVM中運(yùn)行程序 117
5.2.6 設(shè)置環(huán)境變量 118
5.2.7 控制新JVM 118
5.2.8 使用failonerror處理錯(cuò)誤 119
5.2.9 執(zhí)行JAR文件 120
5.2.10 調(diào)用第三方程序 121
5.2.11 在調(diào)用之前探查Java程序 123
5.2.12 設(shè)置超時(shí) 124
5.3 使用<>啟動(dòng)本地程序 124
5.3.1 設(shè)置環(huán)境變量 126
5.3.2 處理錯(cuò)誤 126
5.3.3 處理超時(shí) 127
5.3.4 制作并運(yùn)行一個(gè)shell命令 127
5.3.5 在程序被調(diào)用之前進(jìn)行探測(cè) 129
5.4 使用<apply>進(jìn)行批量執(zhí)行 130
5.5 處理輸出 131
5.6 執(zhí)行的限制 132
5.7 最佳實(shí)踐 132
5.8 小結(jié) 133
第6章 工程打包 134
6.1 移動(dòng)、復(fù)制和刪除文件 135
6.1.1 如何刪除文件 135
6.1.2 怎樣復(fù)制文件 136
6.1.3 如何移動(dòng)文件 137
6.1.4 過(guò)濾 138
6.2 為打包做準(zhǔn)備 139
6.2.1 構(gòu)建發(fā)布代碼及其文檔 139
6.2.2 加入數(shù)據(jù)文件 141
6.2.3 準(zhǔn)備編制文檔 142
6.2.4 準(zhǔn)備安裝腳本和文檔 143
6.2.5 為重發(fā)布準(zhǔn)備庫(kù) 145
6.3 創(chuàng)建存檔文件 146
6.3.1 JAR文件 148
6.3.2 創(chuàng)建一個(gè)JAR文件 148
6.3.3 測(cè)試JAR文件 149
6.3.4 創(chuàng)建JAR清單 150
6.3.5 向JAR中增加額外元數(shù)據(jù) 152
6.3.6 JAR文件的最佳實(shí)踐 152
6.3.7 簽署JAR文件 152
6.4 創(chuàng)建ZIP文件 154
6.4.1 創(chuàng)建二進(jìn)制發(fā)布 154
6.4.2 創(chuàng)建源代碼發(fā)布 156
6.4.3 合并Zip文件 157
6.4.4 Zip文件的最佳實(shí)踐 157
6.5 創(chuàng)建TAR文件 158
6.6 使用WAR文件創(chuàng)建WEB應(yīng)用程序 160
6.7 打包測(cè)試 161
6.8 小結(jié) 162
第7章 部署 163
7.1 典型部署問(wèn)題 164
7.1.1 再看這些任務(wù) 164
7.1.2 部署所用的工具 164
7.2 用于部署的任務(wù) 165
7.2.1 使用<ftp>進(jìn)行文件傳輸 166
7.2.2 探測(cè)服務(wù)器的有效性 166
7.2.3 使用<sleep>讓構(gòu)建暫停 168
7.2.4 Ant的email任務(wù) 169
7.2.5 使用<get>獲取遠(yuǎn)程文件 170
7.2.6 使用任務(wù)進(jìn)行部署 171
7.3 基于FTP的打包應(yīng)用程序發(fā)布 171
7.3.1 通過(guò)<input>任務(wù)獲得信息 172
7.4 基于Email的打包應(yīng)用程序發(fā)布 173
7.5 本地部署到Tomcat 4.x 174
7.5.1 Tomcat的管理servlet API 175
7.5.2 使用Ant部署到Tomcat 176
7.6 遠(yuǎn)程部署到Tomcat 181
7.6.1 插曲:使用<antcall>調(diào)用目標(biāo) 182
7.6.2 在部署中使用<antcall> 185
7.7 對(duì)部署進(jìn)行測(cè)試 187
7.8 小結(jié) 187
第8章 綜合運(yùn)用Ant 188
8.1 我們目前的應(yīng)用程序 188
8.2 構(gòu)建定制的Ant任務(wù)庫(kù) 189
8.3 載入跨工程的共用特性 194
8.4 處理版本依賴(lài) 196
8.4.1 安裝庫(kù)的新版本 198
8.5 構(gòu)建文件的哲學(xué) 200
8.5.1 一開(kāi)始就要把結(jié)果放在心上 200
8.5.2 將測(cè)試納入構(gòu)建 200
8.5.3 支持自動(dòng)部署 200
8.5.4 使其可移植 200
8.5.5 允許用定制 201
8.6 小結(jié) 201
Part 2 應(yīng)用Ant
第9章 在開(kāi)發(fā)項(xiàng)目中使用Ant 205
9.1 設(shè)計(jì)基于A(yíng)nt的構(gòu)建過(guò)程 206
9.1.1 分析你的項(xiàng)目 206
9.1.2 建立核心構(gòu)建文件 208
9.1.3 完善構(gòu)建文件 208
9.2 移植到ANT 209
9.3 移植的十個(gè)步驟 210
9.3.1 從基于Make的項(xiàng)目移植 211
9.3.2 從基于IDE的項(xiàng)目移植 211
9.4 主構(gòu)建:管理大型項(xiàng)目 212
9.4.1 重構(gòu)構(gòu)建文件 212
9.4.2 引入<ant>任務(wù) 213
9.4.3 示例:基本主構(gòu)建文件 213
9.4.4 設(shè)計(jì)可升級(jí)的靈活主構(gòu)建文件 215
9.5 管理子工程構(gòu)建 221
9.5.1 如何控制子工程的特性 221
9.5.2 從主構(gòu)建文件中繼承特性和引用 223
9.5.3 在<ant>里聲明特性和引用 224
9.5.4 通過(guò)XML文件片斷共享特性 225
9.5.5 使用XML文件片斷共享目標(biāo) 227
9.6 創(chuàng)建可重用的庫(kù)構(gòu)建文件 228
9.7 展望未來(lái):讓大型項(xiàng)目支持演化 230
9.8 ANT項(xiàng)目的最佳實(shí)踐 231
9.8.1 管理庫(kù) 232
9.8.2 實(shí)現(xiàn)過(guò)程 232
9.9 小結(jié) 233
第10章 超越Ant的核心任務(wù) 234
10.1 理解任務(wù)的種類(lèi) 235
10.1.1 那么,什么是“可選”任務(wù) 235
10.1.2 Ant的主要可選任務(wù) 236
10.1.3 為什么需要第三方任務(wù) 237
10.2 可選任務(wù)實(shí)際演練 237
10.2.1 操控特性文件 237
10.2.2 為構(gòu)建期間添加音頻反饋和視覺(jué)反饋 239
10.2.3 添加依賴(lài)關(guān)系檢查 241
10.2.4 用JavaCC進(jìn)行語(yǔ)法解析 243
10.2.5 置換正則表達(dá)式 244
10.3 使用軟件配置管理任務(wù) 245
10.3.1 CVS 245
10.3.2 ClearCase 246
10.4 使用第三方任務(wù) 247
10.4.1 用<taskdef>定義任務(wù) 247
10.5 幾個(gè)知名的第三方任務(wù) 248
10.5.1 Checkstyle 248
10.5.2 Torque—對(duì)象-關(guān)系映射 250
10.6 ANT-CONTRIB任務(wù) 253
10.7 項(xiàng)目間共享任務(wù)定義 258
10.8 最佳實(shí)踐 258
10.9 小結(jié) 259
第11章 XDoclet 260
11.1 安裝XDoclet 261
11.2 生成TO-DO列表 261
11.3 XDoclet的體系結(jié)構(gòu) 262
11.3.1 XDoclet的Ant任務(wù) 263
11.3.2 模板化 264
11.3.3 XDoclet如何工作 265
11.4 編寫(xiě)自己的XDoclet模板 265
11.4.1 代碼生成 267
11.4.2 按類(lèi)生成與單文件生成的比較 272
11.4.3 過(guò)濾要處理的類(lèi) 273
11.5 高級(jí)XDoclet 273
11.5.1 定制子任務(wù) 274
11.5.2 建立定制標(biāo)記處理器 274
11.6 XDoclet的發(fā)展方向 275
11.6.1 XDoclet與C#的比較 275
11.6.2 展望Java的未來(lái):JSR175和JSR181 276
11.7 XDoclet最佳實(shí)踐 276
11.7.1 依賴(lài)關(guān)系檢查 276
11.8 小結(jié) 277
第12章 web開(kāi)發(fā) 278
12.1 WEB應(yīng)用程序有什么不同 279
12.2 使用標(biāo)記庫(kù) 280
12.2.1 建立標(biāo)記庫(kù) 280
12.2.2 集成標(biāo)記庫(kù) 286
12.2.3 使用Ant開(kāi)發(fā)標(biāo)記庫(kù)小結(jié) 287
12.3 編譯JSP網(wǎng)頁(yè) 288
12.3.1 安裝<jspc>任務(wù) 289
12.3.2 使用<jspc>任務(wù) 289
12.3.3 為部署而編譯JSP 291
12.3.4 其他JSP編譯任務(wù) 292
12.4 定制web應(yīng)用程序 292
12.4.1 基于filterset的定制 292
12.4.2 利用XDoclet定制部署描述文件 294
12.4.3 定制WAR文件中的庫(kù) 297
12.5 生成靜態(tài)內(nèi)容 297
12.5.1 生成新內(nèi)容 297
12.5.2 建立新文件 298
12.5.3 修改既有文件 299
12.6 使用HTTPUNIT測(cè)試WEB應(yīng)用程序 299
12.6.1 編寫(xiě)HttpUnit測(cè)試 300
12.6.2 編譯測(cè)試 302
12.6.3 準(zhǔn)備從Ant中運(yùn)行HttpUnit測(cè)試 303
12.6.4 運(yùn)行HttpUnit測(cè)試 303
12.6.5 整合測(cè)試 304
12.6.6 HttpUnit的局限性 306
12.6.7 Canoo WebTest 306
12.7 利用CACTUS進(jìn)行服務(wù)器端測(cè)試 310
12.7.1 從Ant視角看Cactus 311
12.7.2 Cactus如何運(yùn)作 313
12.7.3 我們的測(cè)試用例登場(chǎng)了 314
12.7.4 Cactus小結(jié) 314
12.8 小結(jié) 315
第13章 使用XML 317
13.1 導(dǎo)言:關(guān)于XML庫(kù) 318
13.2 驗(yàn)證XML 319
13.2.1 當(dāng)文件不合法的時(shí)候 320
13.2.2 解析XML DTDs 321
13.2.3 支持其他的XML驗(yàn)證機(jī)制 322
13.3 利用XSLT轉(zhuǎn)換XML 323
13.3.1 使用XML Catalog datatype 325
13.3.2 由XML生成PDF文件 327
13.3.3 Styler——一個(gè)第三方的轉(zhuǎn)換任務(wù) 327
13.4 生成XML格式的構(gòu)建日志 327
13.4.1 樣式表 328
13.4.2 輸出文件 329
13.4.3 構(gòu)建日志的后處理 330
13.5 將XML數(shù)據(jù)載入Ant特性 331
13.6 XML處理的將來(lái) 332
13.7 小結(jié) 332
第14章 Enterprise JavaBeans 333
14.1 EJB概述 333
14.1.1 Enterprise JavaBeans的多種類(lèi)型 334
14.1.2 EJB JAR 334
14.1.3 廠(chǎng)商相關(guān)的情形 335
14.2 一個(gè)簡(jiǎn)單的EJB構(gòu)建 335
14.3 使用ANT的EJB任務(wù) 336
14.4 使用<EJBJAR> 337
14.4.1 廠(chǎng)商相關(guān)的<ejbjar>處理 339
14.5 使用XDoclet進(jìn)行EJB開(kāi)發(fā) 340
14.5.1 XDoclet子任務(wù) 341
14.5.2 XDoclet的@標(biāo)記 342
14.5.3 利用XDoclet支持不同的應(yīng)用服務(wù)器 343
14.5.4 Ant特性替換 343
14.6 MIDDLEGEN 345
14.7 部署到J2EE應(yīng)用服務(wù)器 348
14.8 一個(gè)完整的EJB例子 349
14.9 EJB工程的最佳實(shí)踐 354
14.10 小結(jié) 354
第15章 使用Web服務(wù) 355
15.1 何謂Web服務(wù),何謂SOAP 356
15.1.1 SOAP API 357
15.1.2 向Java增加Web服務(wù)能力 357
15.2 用Ant創(chuàng)建一個(gè)SOAP客戶(hù)端應(yīng)用程序 357
15.2.1 準(zhǔn)備我們的構(gòu)建文件 358
15.2.2 創(chuàng)建代理類(lèi) 359
15.2.3 使用SOAP代理類(lèi) 361
15.2.4 編譯SOAP客戶(hù)端 361
15.2.5 運(yùn)行SOAP服務(wù) 362
15.2.6 回顧SOAP客戶(hù)端創(chuàng)建 363
15.3 用Axis和Ant創(chuàng)建一個(gè)SOAP服務(wù) 363
15.3.1 構(gòu)建Web服務(wù)的簡(jiǎn)單方法 364
15.4 向既有Web應(yīng)用程序添加Web服務(wù) 367
15.4.1 配置Web應(yīng)用程序 367
15.4.2 添加庫(kù) 368
15.4.3 在構(gòu)建中包含SOAP服務(wù) 368
15.4.4 測(cè)試服務(wù)器上的需要類(lèi) 369
15.4.5 實(shí)現(xiàn)SOAP端點(diǎn) 370
15.4.6 部署Web服務(wù) 370
15.5 為SOAP服務(wù)編寫(xiě)客戶(hù)端 371
15.5.1 導(dǎo)入WSDL 371
15.5.2 實(shí)現(xiàn)測(cè)試 372
15.5.3 編寫(xiě)Java客戶(hù)端 375
15.6 什么是互操作,為什么它成其為問(wèn)題 376
15.7 構(gòu)建一個(gè)C#客戶(hù)端 376
15.7.1 條件探測(cè) 377
15.7.2 在C#中導(dǎo)入WSDL 378
15.7.3 編寫(xiě)C#客戶(hù)端類(lèi) 379
15.7.4 構(gòu)建C#客戶(hù)端 379
15.7.5 運(yùn)行C#客戶(hù)端 380
15.7.6 回顧C(jī)#客戶(hù)端的構(gòu)建過(guò)程 381
15.8 構(gòu)建Web服務(wù)的嚴(yán)格方法 381
15.9 回顧Web服務(wù)開(kāi)發(fā) 382
15.10 通過(guò)SOAP調(diào)用Ant 383
15.11 小結(jié) 384
第16章 持續(xù)集成 386
16.1 利用操作系統(tǒng)調(diào)度Ant構(gòu)建 387
16.1.1 Windows方法 387
16.1.2 Unix 版本 388
16.1.3 使用腳本 388
16.2 CRUISECONTROL 388
16.2.1 它如何工作 389
16.2.2 這就是Cruise——讓構(gòu)建管理器工作起來(lái) 389
16.2.3 報(bào)告構(gòu)建日志 395
16.2.4 郵件通知與構(gòu)建標(biāo)注 396
16.2.5 CruiseControl小結(jié) 396
16.2.6 提示與技巧 396
16.2.7 CruiseControl的優(yōu)點(diǎn)和缺點(diǎn) 396
16.3 ANTHILL 397
16.3.1 讓Anthill轉(zhuǎn)起來(lái) 398
16.3.2 Anthill是如何工作的 399
16.3.3 Anthill小結(jié) 400
16.4 GUMP 401
16.4.1 安裝和運(yùn)行Gump 401
16.4.2 Gump如何運(yùn)作 403
16.4.3 Gump小結(jié) 404
16.5 持續(xù)集成工具的比較 405
16.6 小結(jié) 406
第17章 開(kāi)發(fā)本地代碼 407
17.1 本地代碼的挑戰(zhàn) 407
17.2 使用既有的構(gòu)建工具 408
17.2.1 交給IDE去做 408
17.2.2 使用Make 409
17.3 引入<CC>任務(wù) 410
17.3.1 安裝任務(wù) 410
17.3.2 添加一個(gè)編譯器 411
17.3.3 <cc>任務(wù)快速入門(mén) 411
17.4 在A(yíng)NT中構(gòu)建一個(gè)JNI庫(kù) 412
17.4.1 構(gòu)建JNI庫(kù)的步驟 413
17.4.2 編寫(xiě)Java存根(Stub) 414
17.4.3 編寫(xiě)C++類(lèi) 415
17.4.4 編譯C++源代碼 416
17.4.5 部署和測(cè)試庫(kù) 419
17.5 實(shí)現(xiàn)跨平臺(tái) 422
17.5.1 移植C++源文件 422
17.5.2 擴(kuò)展構(gòu)建文件 423
17.5.3 移植測(cè)試 424
17.5.4 移植代碼 424
17.6 深入<CC>的細(xì)節(jié) 425
17.6.1 定義預(yù)處理宏 425
17.6.2 通過(guò)<libset>鏈接到庫(kù) 426
17.6.3 配置編譯器和鏈接器 427
17.6.4 定制鏈接器 428
17.7 發(fā)布本地庫(kù) 429
17.8 小結(jié) 430
第18章 成品部署 431
18.1 不同應(yīng)用服務(wù)器的挑戰(zhàn) 432
18.1.1 迥然不同的底層行為 432
18.1.2 不同的Java運(yùn)行時(shí)行為 433
18.1.3 使用不同的API實(shí)現(xiàn)進(jìn)行復(fù)制 434
18.1.4 與供應(yīng)商相關(guān)的庫(kù) 436
18.1.5 部署描述文件 436
18.1.6 與服務(wù)器相關(guān)的部署過(guò)程 436
18.1.7 與服務(wù)器相關(guān)的管理 436
18.2 與操作員齊心協(xié)力 437
18.2.1 操作員用例 437
18.2.2 操作員測(cè)試 437
18.2.3 操作員缺陷跟蹤 438
18.2.4 將操作員與構(gòu)建過(guò)程集成 438
18.3 利用Ant迎接部署的挑戰(zhàn) 440
18.3.1 建立單一的源代碼樹(shù) 440
18.3.2 為創(chuàng)建檔案文件而編寫(xiě)統(tǒng)一的目標(biāo) 440
18.3.3 運(yùn)行服務(wù)器端Ant進(jìn)行部署 441
18.3.4 自動(dòng)化上載和部署過(guò)程 442
18.4 ANT的強(qiáng)大部署工具介紹 442
18.4.1 <copy>任務(wù) 442
18.4.2 <serverdeploy>任務(wù) 443
18.4.3 使用<telnet>進(jìn)行遠(yuǎn)程控制 443
18.5 建立一個(gè)成品的部署過(guò)程 446
18.5.1 計(jì)劃 446
18.5.2 目錄結(jié)構(gòu) 447
18.5.3 配置文件 447
18.5.4 構(gòu)建文件 447
18.5.5 遠(yuǎn)程構(gòu)建文件build.xml 447
18.5.6 為安裝到服務(wù)器編寫(xiě)構(gòu)建文件 449
18.5.7 上載至遠(yuǎn)程服務(wù)器 450
18.5.8 讓遠(yuǎn)程部署轉(zhuǎn)起來(lái) 454
18.5.9 對(duì)部署過(guò)程進(jìn)行回顧 455
18.6 部署至特定應(yīng)用服務(wù)器 456
18.6.1 Tomcat 4.0 和 Tomcat 4.1 456
18.6.2 BEA WebLogic 458
18.6.3 HP Bluestone 應(yīng)用服務(wù)器 458
18.6.4 其他服務(wù)器 459
18.7 驗(yàn)證部署 459
18.7.1 創(chuàng)建時(shí)間戳文件 460
18.7.2 將時(shí)間戳文件添加到應(yīng)用程序中 460
18.7.3 測(cè)試時(shí)間戳 462
18.8 最佳實(shí)踐 462
18.9 小結(jié) 463
Part 3 擴(kuò)展Ant
第19章 編寫(xiě)Ant任務(wù) 467
19.1 什么是一個(gè)真正的Ant任務(wù) 468
19.1.1 世界上最簡(jiǎn)單的Ant任務(wù) 468
19.1.2 在同一個(gè)構(gòu)建過(guò)程中編譯和應(yīng)用一個(gè)任務(wù) 469
19.1.3 任務(wù)的生命周期 469
19.2 Ant API 入門(mén) 470
19.2.1 Task 470
19.2.2 Project 471
19.2.3 Path 472
19.2.4 Fileset 472
19.2.5 DirectoryScanner 472
19.2.6 EnumeratedAttribute 473
19.2.7 FileUtils 473
19.3 任務(wù)如何獲得數(shù)據(jù) 474
19.3.1 設(shè)置屬性 474
19.3.2 支持嵌套元素 480
19.3.3 支持datatypes 481
19.3.4 允許自由格式文本 482
19.4 建立一個(gè)基本的Ant Task子類(lèi) 483
19.4.1 為任務(wù)添加屬性 483
19.4.2 處理元素文本 484
19.5 操作FILESET 485
19.6 錯(cuò)誤處理 486
19.7 測(cè)試Ant任務(wù) 487
19.8 執(zhí)行外部程序 487
19.8.1 處理進(jìn)程輸出 490
19.8.2 本地執(zhí)行小結(jié) 490
19.9 在任務(wù)中執(zhí)行Java程序 490
19.9.1 創(chuàng)建Java程序新進(jìn)程的示例 490
19.10 支持任意命名的元素和屬性 493
19.11 構(gòu)建任務(wù)庫(kù) 495
19.12 支持多版本Ant 497
19.13 小結(jié) 497
第20章 進(jìn)一步擴(kuò)展Ant 498
20.1 在A(yíng)nt中使用腳本 499
20.1.1 <script>約定的隱含對(duì)象 500
20.1.2 腳本使用小結(jié) 501
20.2 監(jiān)聽(tīng)者與日志工具 502
20.2.1 編寫(xiě)一個(gè)定制監(jiān)聽(tīng)者 503
20.2.2 使用log4j的日志功能 506
20.2.3 編寫(xiě)一個(gè)定制日志工具 509
20.2.4 使用MailLogger 513
20.3 開(kāi)發(fā)定制的MAPPER 514
20.4 創(chuàng)建定制的OR 515
20.4.1 在構(gòu)建中使用定制or 516
20.5 實(shí)現(xiàn)定制的FILTER 517
20.5.1 編寫(xiě)定制filter的reader 519
20.6 小結(jié) 520
附錄A 安裝 523
附錄B Ant之XML入門(mén) 532
附錄C IDE集成 536
附錄D Ant風(fēng)格的要素 544
附錄E Ant任務(wù)參考 562
資源 621
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)