Maven实战. 导读

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项目。

前言 为什么写这本书

    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维护自己的项目骨架以方便团队开发,那么可以仔细阅读这两章的内容。

本书代码下载

    大家可以从我的网站下载本书的代码:http://wwwjuvenxucom/mvninaction/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Maven的问题。

咖啡与工具

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

    本书的书稿是使用Git和Unfuddle(http://unfuddlecom/)进行管理的,书中的大量截图是通过Jing(http://wwwtechsmithcom/jing/)制作的。

    JuvenXu2010年10月于苏州Solo咖啡致谢

    感谢费晓峰,是你最早让我学习使用Maven,并在我开始学习的过程中给予了不少帮助。

    感谢Maven开源社区特别是Maven的创立者Jason Van Zyl,是你们一起创造了如此优秀的开源工具,造福了全世界这么多的开发人员。

    感谢我的家人,一年来,我的大部分原来属于你们的业余时间都给了这本书,感谢你们的理解和支持。

    感谢二少、Garin、Sutra、JTux、红人、linux_china、Chris、Jdonee、zc0922、还有很多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

时间: 2024-09-17 04:15:40

Maven实战. 导读的相关文章

Maven实战

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

[Maven实战](5)Archetype生成项目骨架

Hello World项目中有一些Maven的约定:在项目根目录中放置pom.xml,在src/main/java目录下放置项目的主代码,在sc/test/java中放置项目的测试代码.之所以一步一步的展示这些步骤,就是为了让我们这些菜鸟得到最真实的感受.我们称这些基本的目录结构和pom.xml文件内容为项目的骨架. 如下就是我们项目的目录结构骨架: 但是我们不希望每次创建项目时,都是手动一个一个的创建我们的目录结构,重复这些没有什么意义的事情.为此Maven提供了Archetype来帮助我们快

[Maven实战](4)eclipse创建Maven项目

介绍前面Hello World项目的时候,并没有涉及IDE,这样一个简单的项目,使用最简单的编辑器也能完成.但是对一个稍微大一些的项目来说,还是推荐使用IDE.这一篇文章我们在m2eclipse帮助下使用eclipse创建Maven项目. 1. 创建 使用IDE创建一个Maven项目非常简单,选择菜单项File->New->Other,在弹出的对话框中选择Maven下的Maven Project,然后点击Next按钮. 图1 在弹出的New Maven Project对话框中,使用默认的选项.

[Maven实战](2)Eclipse插件m2eclipse

1. 简介 Eclipse是一款非常优秀的IDE.除了基本的语法标亮,代码补齐,XML编辑等基本功能之外,最新版的Eclipse还能很好的支持重构,并且集成了JUnit,CVS等各种流行工具.可惜Eclipse默认没有集成Maven的支持.Sonatype公司建立了m2eclipse项目,这是一款十分强大的Maven插件. 2. m2eclipse安装 启动eclipse之后,在菜单栏中选择Help,然后选择Install New Software,接着就会有一个Install对话框.单击wor

《maven实战》学习笔记7——maven项目版本管理和灵活构建

说明 <maven实战>一书内容很多,整个maven要学的东西也很多,不过,结合个人实际情况,我打算把这一篇作为这次对maven学习的一个阶段性收尾,待其他更急需补充的知识有一定眉目了,再回过头来继续深入. maven版本管理 对于maven版本管理,最重要的是需要区分出快照版本SNAPSHOT和发布版本release,据目前的了解,快照版本格式是固定的,而发布版本有几种,例如带release单词的和不带release单词的. 快照版本由于每次发布都带时间戳,所以适用于开发阶段团队协作,但同时

《maven实战》学习笔记1——maven是什么?为什么要用maven?

前言 工欲善其事,必先利其器.对于java web开发者而言,或者说对于目前大部分java web开发者而言,eclipse.maven.svn.tomcat可能就是目前最常用也是必会的武器了,所以为了更高效的开发和解决问题,经过一番思考后我决定系统性的学学这几样武器. 这几样在我看来一样的重要,也就没有先后之分.都要学,于是我便随便抽了一个,就先从maven开始,主要是结合<maven实战>一书的电子版和纸质版来学习和实践. 为了更好的记忆,同时也为了能在学习的过程中帮到更多人,遂决定做这个

Maven实战1.1何为Maven

Maven实战第1章Maven简介1.1何为Maven Maven这个词可以翻译为"知识的积累",也可以翻译为"专家"或"内行".本书将介绍Maven这一跨平台的项目管理工具.作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理.无论是小型的开源类库项目,还是大型的企业级应用:无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手. 1.1.1何为构建 不管你是否意识到

腾讯Android自动化测试实战导读

前 言 Preface 为什么要写这本书 早在2010年年底,我们团队就有出一本关于移动互联网测试书籍的计划(那时候移动互联网测试书籍基本没有),当时计划的内容涉及面比较广,涵盖测试设计.测试用例管理.测试流程.自动化测试.专项测试等领域.不过,由于各种原因被搁浅,确实有点儿可惜,否则移动互联网测试国内的第一本书当时就面世了.这次终于又有机会整理这些年的测试经验并形成一本书了,借此可以跟业界的同行一起交流切磋. TMQ(Tencent Mobile Quality)腾讯移动品质中心,是腾讯内部最

Activiti实战. 导读

实 战 Activiti实战 闫洪磊 著   为什么要写这本书 2011年年末,公司承接了一个保险类的业务系统,包含处理核心业务的ERP系统以及日常办公的OA系统,很明显这两种类型的系统都离不开工作流引擎的支持.我用一周时间对比了几个开源的工作流引擎,最后决定使用Activiti作为整套系统的工作流引擎. 现在回想起来,当初的学习过程是多么的"痛苦"啊!当时Activiti才刚满周岁,除了官方提供的尚能看得过去的用户手册之外,再无其他资料可供参考,这对于国内开发者来说尤为痛苦.仅有的用