本书是国内第一本公开出版的Maven专着。它内容新颖,基于最新发布的Maven 3?0,不仅详尽讲解了Maven 3?0的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2
基本介绍
- 书名Waven实战
- 作者许晓斌
- ISBN9787111321545
- 出版社机械工业出版社
- 出版时间2010-11-1
- 装帧平装
- 开本16
内容简介
?x版本进行了对比,以便于正在使用Maven 2?x版本的用户能更好地理解。本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和外挂程式、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web套用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse外挂程式等实用性较强的高级知识,读者可有选择性的阅读;扩展性地讲解了如何Maven和Archetype外挂程式,这部分内容对需要编写外挂程式扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且本书还在第4章设计了一个背景案例,后面的很多章节都是围绕这个案例展开的,可操作性极强。
本书适合所有Java程式设计师阅读,无论你是从未使用过Maven,亦或是已经使用Maven很长一段时间了,相信你都能从本书中获得有价值的参考。本书也适合所有项目经理阅读,它能帮助你更规範、更高效地管理Java项目。
目录
前言
致谢
第1章Maven简介/1
1?1何为Maven/2
1?1?1何为构建/2
1?1?2Maven是优秀的构建工具/2
1?1?3Maven不仅仅是构建工具/3
1?2为什幺需要Maven/4
1?2?1组装PC和品牌PC/4
1?2?2IDE不是万能的/4
1?2?3Make/5
1?2?4Ant/5
1?2?5不重複发明轮子/6
1?3Maven与极限编程/7
1?4被误解的Maven/8
1?5小结/9
第2章Maven的安装和配置/10
2?1在Windows上安装Maven/11
2?1?1检查JDK安装/11
2?1?2下载Maven/11
2?1?3本地安装/12
2?1?4升级Maven/13
2?2在基于UNIX的系统上安装Maven/13
2?2?1下载和安装/13
2?2?2升级Maven/15
2?3安装目录分析/15
2?3?1M2_HOME/15
2?3?2~/?m2/16
2?4设定HTTP代理/17
2?5安装m2eclipse/18
2?6安装NetBeans Maven外挂程式/22
2?7Maven安装最佳实践/24
2?7?1设定MAVEN_OPTS环境变数/24
2?7?2配置用户範围settings?xml/24
2?7?3不要使用IDE内嵌的Maven/25
2?8小结/26
第3章Maven使用入门/27
3?1编写POM/28
3?2编写主代码/29
3?3编写测试代码/30
3?4打包和运行/34
3?5使用Archetype生成项目骨架/36
3?6m2eclipse简单使用/37
3?6?1导入Maven项目/37
3?6?2创建Maven项目/39
3?6?3运行mvn命令/39
3?7NetBeans Maven外挂程式简单使用/41
3?7?1打开Maven项目/41
3?7?2创建Maven项目/42
3?7?3运行mvn命令/43
3?8小结/44
第4章背景案例/45
4?1简单的账户注册服务/46
4?2需求阐述/46
4?2?1需求用例/46
4?2?2界面原型/48
4?3简要设计/49
4?3?1接口/49
4?3?2模组结构/49
4?4小结/50
第5章坐标和依赖/51
5?1何为Maven坐标/52
5?2坐标详解/53
5?3account?email/54
5?3?1account?email 的POM/54
5?3?2account?email的主代码/56
5?3?3account?email的测试代码/60
5?3?4构建account?email/62
5?4依赖的配置/62
5?5依赖範围/63
5?6传递性依赖/64
5?6?1何为传递性依赖/64
5?6?2传递性依赖和依赖範围/65
5?7依赖调解/66
5?8可选依赖/66
5?9最佳实践/68
5?9?1排除依赖/68
5?9?2归类依赖/69
5?9?3最佳化依赖/71
5?10小结/74
第6章仓库/75
6?1何为Maven仓库/76
6?2仓库的布局/76
6?3仓库的分类/78
6?3?1本地仓库/79
6?3?2远程仓库/80
6?3?3中央仓库/80
6?3?4私服/81
6?4远程仓库的配置/82
6?4?1远程仓库的认证/83
6?4?2部署至远程仓库/84
6?5快照版本/85
6?6从仓库解析依赖的机制/87
6?7镜像/89
6?8仓库搜寻服务/90
6?8?1Sonatype Nexus/90
6?8?2Jarvana/91
6?8?3MVNbrowser/91
6?8?4MVNrepository/92
6?8?5选择合适的仓库搜寻服务/93
6?9小结/93
第7章生命周期和外挂程式/94
7?1何为生命周期/95
7?2生命周期详解/96
7?2?1三套生命周期/97
7?2?2clean生命周期/97
7?2?3default生命周期/97
7?2?4site生命周期/98
7?2?5命令行与生命周期/98
7?3外挂程式目标/99
7?4外挂程式绑定/99
7?4?1内置绑定/100
7?4?2自定义绑定/102
7?5外挂程式配置/104
7?5?1命令行外挂程式配置/104
7?5?2POM中外挂程式全局配置/104
7?5?3POM中外挂程式任务配置/105
7?6获取外挂程式信息/106
7?6?1线上外挂程式信息/106
7?6?2使用maven?help?plugin描述外挂程式/108
7?7从命令行调用外挂程式/109
7?8外挂程式解析机制/110
7?8?1外挂程式仓库/110
7?8?2外挂程式的默认groupId/111
7?8?3解析外挂程式版本/111
7?8?4解析外挂程式前缀/112
7?9小结/114
第8章聚合与继承/115
8?1account?persist/116
8?1?1account?persist的POM/116
8?1?2account?persist的主代码/118
8?1?3account?persist的测试代码/123
8?2聚合/124
8?3继承/127
8?3?1account?parent/127
8?3?2可继承的POM元素/130
8?3?3依赖管理/131
8?3?4外挂程式管理/135
8?4聚合与继承的关係/137
8?5约定优于配置/139
8?6反应堆/143
8?6?1反应堆的构建顺序/144
8?6?2裁剪反应堆/145
8?7小结/147
第9章使用Nexus创建私服/148
9?1Nexus简介/149
9?2安装Nexus/149
9?2?1下载Nexus/149
9?2?2Bundle方式安装Nexus/150
9?2?3WAR方式安装Nexus/151
9?2?4登录Nexus/152
9?3Nexus的仓库与仓库组/152
9?3?1Nexus内置的仓库/152
9?3?2Nexus仓库分类的概念/154
9?3?3创建Nexus宿主仓库/154
9?3?4创建Nexus代理仓库/155
9?3?5创建Nexus仓库组/156
9?4Nexus的索引与构件搜寻/157
9?5配置Maven从Nexus下载构件/160
9?6部署构件至Nexus/163
9?6?1使用Maven部署构件至Nexus/163
9?6?2手动部署第三方构件至Nexus/164
9?7Nexus的许可权管理/165
9?7?1Nexus的访问控制模型/165
9?7?2为项目分配独立的仓库/167
9?8Nexus的调度任务/169
9?9其他私服软体/170
9?10小结/171
第10章使用Maven进行测试/172
10?1account?captcha/173
10?1?1account?captcha的POM/173
10?1?2account?captcha的主代码/175
10?1?3account?captcha的测试代码/180
10?2maven?surefire?plugin简介/184
10?3跳过测试/184
10?4动态指定要运行的测试用例/186
10?5包含与排除测试用例/187
10?6测试报告/188
10?6?1基本的测试报告/189
10?6?2测试覆盖率报告/190
10?7运行TestNG测试/191
10?8重用测试代码/193
10?9小结/194
第11章使用Hudson进行持续集成/195
11?1持续集成的作用、过程和优势/196
11?2Hudson简介/198
11?3安装Hudson/199
11?4準备Subversion仓库/200
11?5Hudson的基本系统设定/203
11?6创建Hudson任务/205
11?6?1Hudson任务的基本配置/205
11?6?2Hudson任务的源码仓库配置/206
11?6?3Hudson任务的构建触发配置/207
11?6?4Hudson任务的构建配置/208
11?7监视Hudson任务状态/209
11?7?1全局任务状态/209
11?7?2自定义任务视图/211
11?7?3单个任务状态/212
11?7?4Maven项目测试报告/214
11?8Hudson用户管理/215
11?9邮件反馈/217
11?10Hudson工作目录/218
11?11小结/220
第12章使用Maven构建Web套用/221
12?1Web项目的目录结构/222
12?2account?service/224
12?2?1account?service的POM/224
12?2?2account?service的主代码/225
12?3account?web/230
12?3?1account?web的POM/230
12?3?2account?web的主代码/231
12?4使用jetty?maven?plugin进行测试/237
12?5使用Cargo实现自动化部署/239
12?5?1部署至本地Web容器/239
12?5?2部署至远程Web容器/241
12?6小结/242
第13章版本管理/243
13?1何为版本管理/244
13?2Maven的版本号定义约定/245
13?3主干、标籤与分支/246
13?4自动化版本发布/247
13?5自动化创建分支/252
13?6GPG签名/253
13?6?1GPG及其基本使用/254
13?6?2Maven GPG Plugin/255
13?7小结/258
第14章灵活的构建/259
14?1Maven属性/260
14?2构建环境的差异/262
14?3资源过滤/263
14?4Maven Profile/265
14?4?1针对不同环境的profile/265
14?4?2激活profile/266
14?4?3profile的种类/269
14?5Web资源过滤/271
14?6在profile中激活集成测试/272
14?7小结/274
第15章生成项目站点/275
15?1最简单的站点/276
15?2丰富项目信息/278
15?3项目报告外挂程式/281
15?3?1JavaDocs/281
15?3?2Source Xref/283
15?3?3CheckStyle/284
15?3?4PMD/286
15?3?5ChangeLog/288
15?3?6Cobertura/289
15?4自定义站点外观/290
15?4?1站点描述符/290
15?4?2头部内容及外观/291
15?4?3皮肤/292
15?4?4导航边栏/294
15?5创建自定义页面/295
15?6国际化/29815?7部署站点/299
15?8小结/302
第16章m2eclipse/303
16?1m2eclipse简介/304
16?2新建Maven项目/304
16?3导入Maven项目/306
16?3?1导入本地Maven项目/307
16?3?2从SCM仓库导入Maven项目/308
16?3?3m2eclipse中Maven项目的结构/309
16?4执行mvn命令/31016?5访问Maven仓库/312
16?5?1Maven仓库视图/312
16?5?2搜寻构件和Java类/314
16?6管理项目依赖/315
16?6?1添加依赖/315
16?6?2分析依赖/317
16?7其他实用功能/319
16?7?1POM编辑的代码提示/319
16?7?2Effective POM/320
16?7?3下载依赖源码/321
16?8小结/321
第17章编写Maven外挂程式/323
17?1编写Maven外挂程式的一般步骤/324
17?2案例编写一个用于代码行统计的Maven外挂程式/324
17?3Mojo标注/331
17?4Mojo参数/332
17?5错误处理和日誌/336
17?6测试Maven外挂程式/337
17?7小结/341
ⅩⅦ第18章Archetype/342
18?1Archetype使用再叙/343
18?1?1Maven Archetype Plugin/343
18?1?2使用Archetype的一般步骤/343
18?1?3批处理方式使用Archetype/344
18?1?4常用Archetype介绍/345
18?2编写Archetype/347
18?3Archetype Catalog/352
18?3?1什幺是Archetype Catalog/352
18?3?2Archetype Catalog的来源/353
18?3?3生成本地仓库的Archetype Catalog/354
18?3?4使用nexus?archetype?plugin/355
18?4小结/356
附录APOM元素参考/357
附录BSettings元素参考/359
附录C常用外挂程式列表/360