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

 

词条 Maven经典实战
释义

基本信息

作者:许晓斌

出版社:机械工业出版社

ISBN:9787111321545

出版日期:2010 年11月

开本:16开

页码:361

版次:1-1

编辑推荐

国内首本Maven著作,基于Maven 3.0,内容全面,实战性强

国内公认Maven专家亲自执笔,技术专家联袂推荐,权威性毋庸置疑

内容简介

本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑。

本书是国内第一本公开出版的Maven专著。它内容新颖,基于最新发布的Maven 3.0,不仅详尽讲解了Maven 3.0的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2.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项目。

你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目并促进团队交流,每天都有数以万计的开发者在访问中央仓库以获取他们需要的依赖。

本书内容全面而系统,Maven的原理、使用方法和高级应用尽含其中;注重实战是本书的另一个特点,不仅在各个知识点都辅有大量的小案例,而且还有一个综合性的案例贯穿全书。如果你想使用Maven,或正在使用Maven,本书将给你绝佳的指导。

目录

前言

致谢

第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界面原型/484 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插件目标/997 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国际化/298

15 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命令/310

16 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

前言

为什么写这本书

2007年的时候,我加入了一个新成立的开发团队,我们一起做一个新的项目。经验较丰富的同事习惯性地开始编写Ant脚本,也有人希望能尝试一下Maven。当时我比较年轻,且富有激情,因此大家决定让我对Maven做些研究和实践。于是我慢慢开始学习并推广Maven,这期间有人支持,也有人抵触,而我则尽力地为大家排除困难,并做一些内部交流,渐渐地,抵触的人越来越少,我的工作也得到了大家的认可。

为什么一开始有人会抵触这一优秀的技术呢?后来我开始反思这一经历,我认为Maven陡峭的学习曲线和匮乏的文档是当时最主要的问题。为了能改善这个问题,我开始在博客中撰写各类关于Maven的中文博客,翻译了O’Reilly出版的《Maven权威指南》一书,并建立了国内的Maven中文社区,不定期地回答各类Maven相关问题,这在一定程度上推动了Maven这一优秀的技术在国内的传播。

后来我加入了Maven之父Jason Van Zyl创建的Sonatype,参与Nexus的开发并负责维护Maven中央仓库,这些工作使我对开源和Maven有了更深的认识,也给了我从头写一本关于Maven的书的信心。我希望它能够更贴近国内的技术人员的需求,能够出现在书店的某个角落里,给那些有心发现它的读者带来一丝欣喜。

该书写作后期适逢Maven 3的发布,这距离我刚接触Maven时已经过去3年有余,感叹时光的流逝!Maven在2007年至2010年取得了飞速的发展,现在几乎已经成为了所有Java开源项目的标配,Struts、Hibernate、 Ehcache等知名的开源项目都使用Maven进行管理。据了解,国内也有越来越多的知名的软件公司开始使用Maven管理他们的项目,例如阿里巴巴和淘宝。

本书面向的读者

首先,本书适合所有Java程序员阅读。由于自动化构建、依赖管理等问题并不只存在于Java世界,因此非Java程序员也能够从该书中获益。无论你是从未接触过Maven、还是已经用了Maven很长时间,亦或者想要扩展Maven,都能从本书获得有价值的参考建议。

其次,本书也适合项目经理阅读,它能帮助你更规范、更高效地管理Java项目。

本书的主要内容

第1章对Maven做了简要介绍,通过一些程序员熟悉的例子介绍了Maven是什么,为什么需要Maven。建议所有读者都阅读以获得一个大局的印象。

第2~3章是对Maven的一个入门介绍,这些内容对初学者很有帮助,如果你已经比较熟悉Maven,可以跳过。

第4章介绍了本书使用的背景案例,后面的很多章节都会基于该案例展开,因此建议读者至少简单浏览一遍。

第5~8章深入阐述了Maven的核心概念,包括坐标、依赖、仓库、生命周期、插件、继承和多模块聚合,等等,每个知识点都有实际的案例相佐,建议读者仔细阅读。

第9章介绍使用Nexus建立私服,如果你要在实际工作中使用Maven,这是必不可少的。

第10~16章介绍了一些相对高级且离散的知识点,包括测试、持续集成与Hudson、Web项目与自动化部署、自动化版本管理、智能适应环境差异的灵活构建、站点生成,以及Maven的Eclipse插件m2eclipse,等等。读者可以根据自己实际需要和兴趣选择性地阅读。

第17~18章介绍了如何编写Archeype和Maven插件。一般的Maven用户在实际工作中往往不需要接触这些知识,如果你需要编写插件扩展Maven,或者需要编写Archetype维护自己的项目骨架以方便团队开发,那么可以仔细阅读这两章的内容。

本书代码下载

大家可以从我的网站下载本书的代码也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Maven的问题。

咖啡与工具

本书相当一部分的内容是在苏州十全街边的Solo咖啡馆完成的,老板Yin亲手烘焙咖啡豆、并能做出据说是苏州最好的咖啡,这小桥流水畔的温馨小屋能够帮我消除紧张和焦虑,和Yin有一句没一句的聊天也是相当的轻松。Yin还教会了我如何自己研磨咖啡豆、手冲滴率咖啡,让我能够每天在家里也能享受香气四溢的新鲜咖啡。

媒体评论

随着近两年Maven在国内的普及,越来越多的公司与项目开始接受并使用其作为项目构建与依赖管理工具,Java开发人员对Maven相关的资料的需求也越来越迫切。Juven Xu作为Sonatype的员工和《Maven权威指南》的译者,对Maven有着非常深刻的理解,他为Maven中文社区所做的工作也为推动Maven的发展做出了非常大的贡献。这本书是Juven牺牲了将近一年的业余时间创作而成的,内容全面、实战性强、深度和广度兼备,是中文社区不可多得的优秀参考资料。——Maven中文社区

本国语言的Maven参考资料永远是受欢迎的,而现在Juven Xu(许晓斌)——一位活跃在开源社区的知名Maven专家正好有条件编写一本关于Maven的中文图书。他的新书《Maven实战》将带领你一步步从认识Maven开始走向更高级的现实世界中的真实项目应用。这本书的主要内容不仅包括Maven在Web领域的应用、使用Maven管理版本发布、以及如何编写自己的Maven插件,而且还涵盖了许多如何在企业环境中应用Maven的技术细节,例如Eclipse集成、Nexus仓库管理器以及用Hudson进行持续集成等。如果你是一个正在使用Maven的中国程序员,该书是必备的!——John Smart Wakaleo Consuting首席咨询顾问,《Java Power Tools》(O'Reilly出版)作者

随便看

 

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

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/14 10:30:56