请输入您要查询的百科知识:

 

词条 使用Ant进行Java开发
释义

基本信息

原书名: Java Development With Ant

原出版社: Manning Publications

作者: Erik Hatcher,Steve Loughran译者: 刘永丹

出版社:电子工业出版社

ISBN:7121016834

上架时间:2005-9-27

出版日期:2005 年9月

开本:16开

页码:672

版次:1-1

内容简介

ant,一个备受赞誉的java构建工具。它以其易于使用、与平台无关、迎合如今项目自动测试和自动部署的需要,成为许多项目构建过程的重要环节。目前它已成为所有主要开源java项目采用的独立工具,并已成了事实上的标准。

本书作者是被sam ruby先生誉为“两个最了解ant的人”。他们将以最佳的方式给你讲授ant,从一个简单的构建定义开始,然后展示加入你的项目所需的那些功能。如果你是一个初学ant的人,本书将系统带你领略大多数java项目都要经历的核心步骤:编译、测试、执行、打包以及分发。如果你是一个富有经验的ant用户,本书能教你如何使用ant“增强系统的能力”。所以不管你使用ant的经验如何,都能从本书中学到很多东西,你的软件项目也将因为使用ant作为构建过程的基础而受益匪浅。

本书分为三个部分,第1部分提供了ant及其功能的基础知识。第2部分,每章讨论一个专题,在其中探讨了多种项目,并介绍了ant在其中扮演的关键角色。第3部分是为那些想突破既有能力限制的高级用户撰写的内容。

目录

译者序        v

序        xxi

前言        xxiii

致谢        xxv

关于本书        xxvii

关于作者        xxxii

关于封面        xxxiii

part 1 学习ant

第1章 ant简介        3

1.1 何为ant        3

1.1.1 何为构建过程,我们为什么需要它        4

1.1.2 为什么我们认为ant是一个优秀的构建工具        4

1.2 ant的核心概念        5

1.2.1 示例工程        7

1.3 为什么要使用ant        10

1.3.1 集成开发环境        10

1.3.2 make        11

1.3.3 其他构建工具        13

1.3.4 立刻就来运行吧        14

1.4 ant的演化史        14

.1.5 ant与软件开发方法        16

1.5.1 xp(extreme programming)        16

1.5.2 rational统一过程        17

1.6 示例工程        17

1.6.1 文档搜索引擎—ant示例工程        18

1.7 太棒了,可是ant能否……        19

1.8 超越java开发        21

1.8.1 web 发布引擎        21

1.8.2 简单的工作流引擎        21

1.8.3 microsoft .net 以及其他语言        21

1.9 小结        22

第2章 开始ant之旅        23

2.1 定义我们的第一个工程        23

2.2 第一步: 检查工具是否已经就绪        24

2.3 第二步: 编写你的第一个ant构建文件        24

2.3.1 测试构建文件        25

2.4 第三步: 运行你的第一个构建        26

2.4.1 如果构建失败        27

2.4.2 查看更多构建细节        29

2.5 第四步:强制结构        31

2.5.1 布置源文件路径        32

2.5.2 布置构建目录        33

2.5.3 布置发布目录        34

2.5.4 创建构建文件        35

2.5.5 目标依赖        35

2.5.6 运行新的构建文件        36

2.5.7 重新运行构建        37

2.5.8 ant如何处理命令行上的多个目标        38

2.6 第五步: 运行我们的程序        39

2.6.1 为什么要在ant内部运行        39

2.6.2 添加执行目标        40

2.6.3 运行新的目标        40

2.7 ant 命令行选项        41

2.7.1 指定要运行的构建        42

2.7.2 控制所提供的信息量        42

2.7.3 获取项目信息        44

2.8 最终的构建文件        44

2.9 小结        46

第3章 理解ant的datatypes和特性        47

3.1 入门        48

3.1.1 datatype 概述        48

3.1.2 特性概述        48

3.2 通过[javac]介绍datatype和特性        49

3.3 路径(path)        51

3.4 文件集(fileset)        52

3.4.1 文件集举例        53

3.4.2 默认排除项(default excludes)        53

3.5 模式集(patternset)        54

3.6 选择器(selector)        56

3.7 datatype元素命名        57

3.8 过滤集(filterset)        58

3.8.1 构建运行时在文件中插入日期戳        58

3.9 过滤链(filterchain)和过滤阅读器(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 通过[property]任务设置特性        67

3.12.2 [property] 任务怎样区别于其他任务        70

3.12.3 检查资源的可用性:[available]        70

3.12.4 忽略不必要的步骤:[uptodate] 以节省时间        72

3.12.5 用[condition]测试条件        72

3.12.6 在命令行中设置特性        74

3.12.7 用[tstamp]创建构建的时间戳        75

3.12.8 从xml文件中载入特性        76

3.13 使用特性控制ant        77

3.13.1 有条件地执行 target        77

3.13.2 有条件的patternset包含/排除(inclusion/exclusion)        78

3.13.3 有条件的构建失败        78

3.14 引用        79

3.14.1 特性和引用        80

3.14.2 为嵌套的模式集使用引用        81

3.15 最佳实践        82

3.16 小结        83

第4章 使用junit进行测试        85

4.1 重构(refactoring)        86

4.2 java main() 测试        86

4.3 junit 入门        87

4.3.1 编写测试用例        88

4.3.2 运行测试用例        88

4.3.3 断言预期的结果        88

4.3.4 测试用例生命周期        90

4.3.5 编写测试组件        90

4.3.6 获取及安装junit        91

4.3.7 扩展junit        91

4.4 在我们的应用程序中使用单元测试        92

4.4.1 先编写测试        92

4.4.2 在测试过程中处理外部资源        93

4.5 junit任务—[junit]        94

4.5.1 组织目录以安放测试        94

4.5.2 配置junit到构建过程        95

4.6 测试失败意味着构建失败        97

4.6.1 捕获测试结果        97

4.6.2 运行多重测试        99

4.6.3 创建你自己的结果(result)formatter        100

4.7 生成测试结果报告        100

4.7.1 生成报告且允许当测试失败时中止构建        102

4.7.2 从命令行运行单个测试用例        103

4.7.3 初始化测试环境        103

4.7.4 其他测试问题        104

4.8 短路测试        105

4.8.1 处理大量测试        108

4.9 最佳实践        109

4.10 小结        110

第5章 运行程序        111

5.1 为什么需要运行外部程序        111

5.2 运行java程序        112

5.2.1 介绍[java]任务        113

5.2.2 设置classpath        114

5.2.3 参数        115

5.2.4 定义系统特性        116

5.2.5 在新jvm中运行程序        117

5.2.6 设置环境变量        118

5.2.7 控制新jvm        118

5.2.8 使用failonerror处理错误        119

5.2.9 执行jar文件        120

5.2.10 调用第三方程序        121

5.2.11 在调用之前探查java程序        123

5.2.12 设置超时        124

5.3 使用[exec]启动本地程序        124

5.3.1 设置环境变量        126

5.3.2 处理错误        126

5.3.3 处理超时        127

5.3.4 制作并运行一个shell命令        127

5.3.5 在程序被调用之前进行探测        129

5.4 使用[apply]进行批量执行        130

5.5 处理输出        131

5.6 执行的限制        132

5.7 最佳实践        132

5.8 小结        133

第6章 工程打包        134

6.1 移动、复制和删除文件        135

6.1.1 如何删除文件        135

6.1.2 怎样复制文件        136

6.1.3 如何移动文件        137

6.1.4 过滤        138

6.2 为打包做准备        139

6.2.1 构建发布代码及其文档        139

6.2.2 加入数据文件        141

6.2.3 准备编制文档        142

6.2.4 准备安装脚本和文档        143

6.2.5 为重发布准备库        145

6.3 创建存档文件        146

6.3.1 jar文件        148

6.3.2 创建一个jar文件        148

6.3.3 测试jar文件        149

6.3.4 创建jar清单        150

6.3.5 向jar中增加额外元数据        152

6.3.6 jar文件的最佳实践        152

6.3.7 签署jar文件        152

6.4 创建zip文件        154

6.4.1 创建二进制发布        154

6.4.2 创建源代码发布        156

6.4.3 合并zip文件        157

6.4.4 zip文件的最佳实践        157

6.5 创建tar文件        158

6.6 使用war文件创建web应用程序        160

6.7 打包测试        161

6.8 小结        162

第7章 部署        163

7.1 典型部署问题        164

7.1.1 再看这些任务        164

7.1.2 部署所用的工具        164

7.2 用于部署的任务        165

7.2.1 使用[ftp]进行文件传输        166

7.2.2 探测服务器的有效性        166

7.2.3 使用[sleep]让构建暂停        168

7.2.4 ant的email任务        169

7.2.5 使用[get]获取远程文件        170

7.2.6 使用任务进行部署        171

7.3 基于ftp的打包应用程序发布        171

7.3.1 通过[input]任务获得信息        172

7.4 基于email的打包应用程序发布        173

7.5 本地部署到tomcat 4.x        174

7.5.1 tomcat的管理servlet api        175

7.5.2 使用ant部署到tomcat        176

7.6 远程部署到tomcat        181

7.6.1 插曲:使用[antcall]调用目标        182

7.6.2 在部署中使用[antcall]        185

7.7 对部署进行测试        187

7.8 小结        187

第8章 综合运用ant        188

8.1 我们目前的应用程序        188

8.2 构建定制的ant任务库        189

8.3 载入跨工程的共用特性        194

8.4 处理版本依赖        196

8.4.1 安装库的新版本        198

8.5 构建文件的哲学        200

8.5.1 一开始就要把结果放在心上        200

8.5.2 将测试纳入构建        200

8.5.3 支持自动部署        200

8.5.4 使其可移植        200

8.5.5 允许用定制        201

8.6 小结        201

part 2 应用ant

第9章 在开发项目中使用ant        205

9.1 设计基于ant的构建过程        206

9.1.1 分析你的项目        206

9.1.2 建立核心构建文件        208

9.1.3 完善构建文件        208

9.2 移植到ant        209

9.3 移植的十个步骤        210

9.3.1 从基于make的项目移植        211

9.3.2 从基于ide的项目移植        211

9.4 主构建:管理大型项目        212

9.4.1 重构构建文件        212

9.4.2 引入[ant]任务        213

9.4.3 示例:基本主构建文件        213

9.4.4 设计可升级的灵活主构建文件        215

9.5 管理子工程构建        221

9.5.1 如何控制子工程的特性        221

9.5.2 从主构建文件中继承特性和引用        223

9.5.3 在[ant]里声明特性和引用        224

9.5.4 通过xml文件片断共享特性        225

9.5.5 使用xml文件片断共享目标        227

9.6 创建可重用的库构建文件        228

9.7 展望未来:让大型项目支持演化        230

9.8 ant项目的最佳实践        231

9.8.1 管理库        232

9.8.2 实现过程        232

9.9 小结        233

第10章 超越ant的核心任务        234

10.1 理解任务的种类        235

10.1.1 那么,什么是“可选”任务        235

10.1.2 ant的主要可选任务        236

10.1.3 为什么需要第三方任务        237

10.2 可选任务实际演练        237

10.2.1 操控特性文件        237

10.2.2 为构建期间添加音频反馈和视觉反馈        239

10.2.3 添加依赖关系检查        241

10.2.4 用javacc进行语法解析        243

10.2.5 置换正则表达式        244

10.3 使用软件配置管理任务        245

10.3.1 cvs        245

10.3.2 clearcase        246

10.4 使用第三方任务        247

10.4.1 用[taskdef]定义任务        247

10.5 几个知名的第三方任务        248

10.5.1 checkstyle        248

10.5.2 torque—对象-关系映射        250

10.6 ant-contrib任务        253

10.7 项目间共享任务定义        258

10.8 最佳实践        258

10.9 小结        259

第11章 xdoclet        260

11.1 安装xdoclet        261

11.2 生成to-do列表        261

11.3 xdoclet的体系结构        262

11.3.1 xdoclet的ant任务        263

11.3.2 模板化        264

11.3.3 xdoclet如何工作        265

11.4 编写自己的xdoclet模板        265

11.4.1 代码生成        267

11.4.2 按类生成与单文件生成的比较        272

11.4.3 过滤要处理的类        273

11.5 高级xdoclet        273

11.5.1 定制子任务        274

11.5.2 建立定制标记处理器        274

11.6 xdoclet的发展方向        275

11.6.1 xdoclet与c#的比较        275

11.6.2 展望java的未来:jsr175和jsr181        276

11.7 xdoclet最佳实践        276

11.7.1 依赖关系检查        276

11.8 小结        277

第12章 web开发        278

12.1 web应用程序有什么不同        279

12.2 使用标记库        280

12.2.1 建立标记库        280

12.2.2 集成标记库        286

12.2.3 使用ant开发标记库小结        287

12.3 编译jsp网页        288

12.3.1 安装[jspc]任务        289

12.3.2 使用[jspc]任务        289

12.3.3 为部署而编译jsp        291

12.3.4 其他jsp编译任务        292

12.4 定制web应用程序        292

12.4.1 基于filterset的定制        292

12.4.2 利用xdoclet定制部署描述文件        294

12.4.3 定制war文件中的库        297

12.5 生成静态内容        297

12.5.1 生成新内容        297

12.5.2 建立新文件        298

12.5.3 修改既有文件        299

12.6 使用httpunit测试web应用程序        299

12.6.1 编写httpunit测试        300

12.6.2 编译测试        302

12.6.3 准备从ant中运行httpunit测试        303

12.6.4 运行httpunit测试        303

12.6.5 整合测试        304

12.6.6 httpunit的局限性        306

12.6.7 canoo webtest        306

12.7 利用cactus进行服务器端测试        310

12.7.1 从ant视角看cactus        311

12.7.2 cactus如何运作        313

12.7.3 我们的测试用例登场了        314

12.7.4 cactus小结        314

12.8 小结        315

第13章 使用xml        317

13.1 导言:关于xml库        318

13.2 验证xml        319

13.2.1 当文件不合法的时候        320

13.2.2 解析xml dtds        321

13.2.3 支持其他的xml验证机制        322

13.3 利用xslt转换xml        323

13.3.1 使用xml catalog datatype        325

13.3.2 由xml生成pdf文件        327

13.3.3 styler——一个第三方的转换任务        327

13.4 生成xml格式的构建日志        327

13.4.1 样式表        328

13.4.2 输出文件        329

13.4.3 构建日志的后处理        330

13.5 将xml数据载入ant特性        331

13.6 xml处理的将来        332

13.7 小结        332

第14章 enterprise javabeans        333

14.1 ejb概述        333

14.1.1 enterprise javabeans的多种类型        334

14.1.2 ejb jar        334

14.1.3 厂商相关的情形        335

14.2 一个简单的ejb构建        335

14.3 使用ant的ejb任务        336

14.4 使用[ejbjar]        337

14.4.1 厂商相关的[ejbjar]处理        339

14.5 使用xdoclet进行ejb开发        340

14.5.1 xdoclet子任务        341

14.5.2 xdoclet的@标记        342

14.5.3 利用xdoclet支持不同的应用服务器        343

14.5.4 ant特性替换        343

14.6 middlegen        345

14.7 部署到j2ee应用服务器        348

14.8 一个完整的ejb例子        349

14.9 ejb工程的最佳实践        354

14.10 小结        354

第15章 使用web服务        355

15.1 何谓web服务,何谓soap        356

15.1.1 soap api        357

15.1.2 向java增加web服务能力        357

15.2 用ant创建一个soap客户端应用程序        357

15.2.1 准备我们的构建文件        358

15.2.2 创建代理类        359

15.2.3 使用soap代理类        361

15.2.4 编译soap客户端        361

15.2.5 运行soap服务        362

15.2.6 回顾soap客户端创建        363

15.3 用axis和ant创建一个soap服务        363

15.3.1 构建web服务的简单方法        364

15.4 向既有web应用程序添加web服务        367

15.4.1 配置web应用程序        367

15.4.2 添加库        368

15.4.3 在构建中包含soap服务        368

15.4.4 测试服务器上的需要类        369

15.4.5 实现soap端点        370

15.4.6 部署web服务        370

15.5 为soap服务编写客户端        371

15.5.1 导入wsdl        371

15.5.2 实现测试        372

15.5.3 编写java客户端        375

15.6 什么是互操作,为什么它成其为问题        376

15.7 构建一个c#客户端        376

15.7.1 条件探测        377

15.7.2 在c#中导入wsdl        378

15.7.3 编写c#客户端类        379

15.7.4 构建c#客户端        379

15.7.5 运行c#客户端        380

15.7.6 回顾c#客户端的构建过程        381

15.8 构建web服务的严格方法        381

15.9 回顾web服务开发        382

15.10 通过soap调用ant        383

15.11 小结        384

第16章 持续集成        386

16.1 利用操作系统调度ant构建        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——让构建管理器工作起来        389

16.2.3 报告构建日志        395

16.2.4 邮件通知与构建标注        396

16.2.5 cruisecontrol小结        396

16.2.6 提示与技巧        396

16.2.7 cruisecontrol的优点和缺点        396

16.3 anthill        397

16.3.1 让anthill转起来        398

16.3.2 anthill是如何工作的        399

16.3.3 anthill小结        400

16.4 gump        401

16.4.1 安装和运行gump        401

16.4.2 gump如何运作        403

16.4.3 gump小结        404

16.5 持续集成工具的比较        405

16.6 小结        406

第17章 开发本地代码        407

17.1 本地代码的挑战        407

17.2 使用既有的构建工具        408

17.2.1 交给ide去做        408

17.2.2 使用make        409

17.3 引入[cc]任务        410

17.3.1 安装任务        410

17.3.2 添加一个编译器        411

17.3.3 [cc]任务快速入门        411

17.4 在ant中构建一个jni库        412

17.4.1 构建jni库的步骤        413

17.4.2 编写java存根(stub)        414

17.4.3 编写c++类        415

17.4.4 编译c++源代码        416

17.4.5 部署和测试库        419

17.5 实现跨平台        422

17.5.1 移植c++源文件        422

17.5.2 扩展构建文件        423

17.5.3 移植测试        424

17.5.4 移植代码        424

17.6 深入[cc]的细节        425

17.6.1 定义预处理宏        425

17.6.2 通过[libset]链接到库        426

17.6.3 配置编译器和链接器        427

17.6.4 定制链接器        428

17.7 发布本地库        429

17.8 小结        430

第18章 成品部署        431

18.1 不同应用服务器的挑战        432

18.1.1 迥然不同的底层行为        432

18.1.2 不同的java运行时行为        433

18.1.3 使用不同的api实现进行复制        434

18.1.4 与供应商相关的库        436

18.1.5 部署描述文件        436

18.1.6 与服务器相关的部署过程        436

18.1.7 与服务器相关的管理        436

18.2 与操作员齐心协力        437

18.2.1 操作员用例        437

18.2.2 操作员测试        437

18.2.3 操作员缺陷跟踪        438

18.2.4 将操作员与构建过程集成        438

18.3 利用ant迎接部署的挑战        440

18.3.1 建立单一的源代码树        440

18.3.2 为创建档案文件而编写统一的目标        440

18.3.3 运行服务器端ant进行部署        441

18.3.4 自动化上载和部署过程        442

18.4 ant的强大部署工具介绍        442

18.4.1 [copy]任务        442

18.4.2 [serverdeploy]任务        443

18.4.3 使用[telnet]进行远程控制        443

18.5 建立一个成品的部署过程        446

18.5.1 计划        446

18.5.2 目录结构        447

18.5.3 配置文件        447

18.5.4 构建文件        447

18.5.5 远程构建文件build.xml        447

18.5.6 为安装到服务器编写构建文件        449

18.5.7 上载至远程服务器        450

18.5.8 让远程部署转起来        454

18.5.9 对部署过程进行回顾        455

18.6 部署至特定应用服务器        456

18.6.1 tomcat 4.0 和 tomcat 4.1        456

18.6.2 bea weblogic        458

18.6.3 hp bluestone 应用服务器        458

18.6.4 其他服务器        459

18.7 验证部署        459

18.7.1 创建时间戳文件        460

18.7.2 将时间戳文件添加到应用程序中        460

18.7.3 测试时间戳        462

18.8 最佳实践        462

18.9 小结        463

part 3 扩展ant

第19章 编写ant任务        467

19.1 什么是一个真正的ant任务        468

19.1.1 世界上最简单的ant任务        468

19.1.2         在同一个构建过程中编译和应用一个任务        469

19.1.3 任务的生命周期        469

19.2 ant api 入门        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 任务如何获得数据        474

19.3.1 设置属性        474

19.3.2 支持嵌套元素        480

19.3.3 支持datatypes        481

19.3.4 允许自由格式文本        482

19.4 建立一个基本的ant task子类        483

19.4.1 为任务添加属性        483

19.4.2 处理元素文本        484

19.5 操作fileset        485

19.6 错误处理        486

19.7 测试ant任务        487

19.8 执行外部程序        487

19.8.1 处理进程输出        490

19.8.2 本地执行小结        490

19.9 在任务中执行java程序        490

19.9.1 创建java程序新进程的示例        490

19.10 支持任意命名的元素和属性        493

19.11 构建任务库        495

19.12 支持多版本ant        497

19.13 小结        497

第20章 进一步扩展ant        498

20.1 在ant中使用脚本        499

20.1.1 [script]约定的隐含对象        500

20.1.2 脚本使用小结        501

20.2 监听者与日志工具        502

20.2.1 编写一个定制监听者        503

20.2.2 使用log4j的日志功能        506

20.2.3 编写一个定制日志工具        509

20.2.4 使用maillogger        513

20.3 开发定制的mapper        514

20.4 创建定制的selector        515

20.4.1 在构建中使用定制selector        516

20.5 实现定制的filter        517

20.5.1 编写定制filter的reader        519

20.6 小结        520

附录a 安装        523

附录b ant之xml入门        532

附录c ide集成        536

附录d ant风格的要素        544

附录e ant任务参考        562

资源        621

索引        625

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 12:04:47