《Maven实战》


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

由国内的Maven权威亲自执笔,《Maven实战》告诉你Maven的本质是什么,深入阐述Maven的依赖管理、仓库、生命周期、插件等核心概念。你还能看到实际的案例演变,以及诸如多模块组织、建立Nexus私服、使用Hudson进行持续集成等企业开发的最佳实践。

China-Pub|卓越|当当购买

赞誉 目录 源码 InfoQ免费迷你版 堪误 评论 豆瓣

赞誉

“Local-language Maven reference material is always welcome, and Juven, a well-known Maven expert who is very active in the open source community, is well-placed to write a Chinese book on Maven. His new book, ‘Maven in Action’, takes readers from Maven basics right through to more advanced real-world situations including working with web applications, managing releases with Maven, and even writing your own Maven plugins! The book also covers practical details about how to set up Maven in an enterprise, including related tools such as Eclipse integration, the Nexus Repository Manager and Hudson for Continuous Integration. If you are a Chinese developer working with Maven, this book is a must-have!”

John Smart
Wakaleo Consuting首席咨询顾问,《Java Power Tools》(O’Reilly)作者

“终于看到了一本关于Maven的中文图书面世啦,虽然Maven是Java项目构建工具的事实标准,但是相关的资料还是比较少,更别说本土的中文资料。这里非常感谢Juven在业余时间花费大量精力完成了《Maven实战》图书,为Java程序员快速了解和使用Maven提供了参考。虽然很多Java项目都在使用Maven进行管理,但是仍然有不少开发人员还在使用传统的方法管理项目,希望《Maven实战》会给你带来不一样的项目构建和管理体验。Juven同时还是Maven社区的主力推动者,翻译了《Maven权威指南》、撰写了Maven相关的大量文章、制作了各种Maven培训资料,Maven User Group维护等等。“

雷卷
淘宝技术专家,mvnsearch.org 作者

目录

  1. Maven简介 (免费试读)
  2. 1.1 何为Maven
    1.2 为什么需要Maven
    1.3 Maven与极限编程
    1.4 被误解的Maven

  3. Maven安装 (免费试读) (免费迷你版)
  4. 2.1 在Windows上安装Maven
    2.2 在基于Unix的系统上安装Maven
    2.3 安装目录分析
    2.4 设置HTTP代理
    2.5 安装m2eclipse
    2.6 安装NetBeans Maven插件
    2.7 Maven安装最佳实践

  5. Hello World (免费试读) (免费迷你版)
  6. 3.1 编写POM
    3.2 编写主代码
    3.3 编写测试代码
    3.4 打包和运行
    3.5 使用Archetype生成项目骨架
    3.6 m2eclipse简单使用
    3.7 NetBeans Maven插件简单使用

  7. 背景案例
  8. 4.1 简单的账户注册服务
    4.2 需求阐述
    4.3 简要设计

  9. 坐标和依赖 (免费迷你版)
  10. 5.1 何为Maven坐标
    5.2 坐标详解
    5.3 account-email
    5.4 依赖的配置
    5.5 依赖范围
    5.6 传递性依赖
    5.7 依赖调解
    5.8 可选依赖
    5.9 最佳实践

  11. 仓库
  12. 6.1 何为Maven仓库
    6.2 仓库的布局
    6.3 仓库的分类
    6.4 远程仓库的配置
    6.5 快照版本
    6.6 从仓库解析依赖的机制
    6.7 镜像
    6.8 仓库搜索服务

  13. 生命周期和插件
  14. 7.1 何为生命周期
    7.2 生命周期详解
    7.3 插件目标
    7.4 插件绑定
    7.5 插件配置
    7.6 获取插件信息
    7.7 从命令行调用插件
    7.8 插件解析机制

  15. 聚合与继承
  16. 8.1 account-persist
    8.2 聚合
    8.3 继承
    8.4 聚合与继承的关系
    8.5 约定优于配置
    8.6 反应堆

  17. 使用 Nexus 创建私服
  18. 9.1 Nexus简介
    9.2 安装Nexus
    9.3 Nexus的仓库与仓库组
    9.4 Nexus的索引与构件搜索
    9.5 配置Maven从Nexus下载构件
    9.6 部署构件至Nexus
    9.7 Nexus的权限管理
    9.8 Nexus的调度任务
    9.9 其他私服软件

  19. 使用 Maven 进行测试
  20. 10.1 account-captcha
    10.2 maven-surefire-plugin简介
    10.3 跳过测试
    10.4 动态指定要运行的测试用例
    10.5 包含与排除测试用例
    10.6 测试报告
    10.7 运行TestNG测试
    10.8 重用测试代码

  21. 使用 Hudson 进行持续集成
  22. 11.1 持续集成的作用、过程和优势
    11.2 Hudson简介
    11.3 安装Hudson
    11.4 准备Subversion仓库
    11.5 Hudson的基本系统设置
    11.6 创建Hudson任务
    11.7 监视Hudson任务状态
    11.8 Hudson用户管理
    11.9 邮件反馈
    11.10 Hudson工作目录

  23. 构建 Web 应用 (免费迷你版)
  24. 12.1 Web项目的基本结构
    12.2 account-service
    12.3 account-web
    12.4 使用jetty-maven-plugin进行测试
    12.5 使用Cargo实现自动化部署

  25. 版本管理
  26. 13.1 何为版本管理
    13.2 Maven的版本号定义约定
    13.3 主干、标签与分支
    13.4 自动化版本发布
    13.5 自动化创建分支
    13.6 GPG签名

  27. 灵活的构建
  28. 14.1 Maven属性
    14.2 构建环境的差异
    14.3 资源过滤
    14.4 Maven Profile
    14.5 Web资源过滤
    14.6 在Profile中激活集成测试

  29. 生成项目站点
  30. 15.1 最简单的站点
    15.2 丰富项目信息
    15.3 项目报告插件
    15.4 自定义站点外观
    15.5 创建自定义页面
    15.6 国际化
    15.7 部署站点

  31. m2eclipse
  32. 16.1 m2eclipse简介
    16.2 安装m2eclipse
    16.3 新建Maven项目
    16.4 导入Maven项目
    16.5 执行mvn命令
    16.6 访问Maven仓库
    16.7 管理项目依赖
    16.8 其它实用功能

  33. 编写 Maven 插件
  34. 17.1 编写Maven插件的一般步骤
    17.2 代码行统计Maven插件
    17.3 Mojo标注
    17.4 Mojo参数
    17.5 错误处理和日志
    17.6 测试Maven插件

  35. Archetype
  36. 18.1 Archetype使用再叙
    18.2 编写Archetype
    18.3 Archetype Catalog

源码下载

随书样例代码 (2803)

InfoQ免费迷你版

InfoQ协助为本书创建了一个迷你版本,该版本节选了很多精彩章节,并为提供了免费下载:
http://www.infoq.com/cn/minibooks/maven-in-action

关于本书以及Maven,我还接受了InfoQ的一个采访:
http://www.infoq.com/cn/news/2010/11/maven-in-action

堪误

  • 80页,6.3.3中央仓库,第1段,第5行
    Maven 3为org/apache/maven/model/pom-4.0.0.xml。Maven 2为org.apache.maven.project/pom-4.0.0.xml
  • 85页,第2段,第1行
    第5.4节 -> 第6.4.1节
  • 156页,倒数第2行
    Nexus中仓库 -> Nexus中的仓库
  • 61页,第1行
    应为accountEmailService.sendMail( “test2@juvenxu.com”, subject, htmlText );
  • 245页,第3行
    引入不容内容的Maven插件 -> 引入不同内容的Maven插件
  • 59页,第1段,倒数第2行
    account-email.properties -> service.properties
  • 174页,倒数第5行
    没有上传的中央仓库 -> 没有上传到中央仓库
  1. 03128crz
    October 28th, 2011 at 15:52 | #1

    請問出現以下錯誤應該怎麼解決?
    Failed to execute goal on project simple-model:
    Could not resolve dependencies for project org.sonatype.mavenbook.ch07:simple-model:jar:1.0:
    Failure to find javax.transaction:jta:jar:1.0.1B in http://repo1.maven.org/maven2
    was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced

  2. huxianjun
    November 4th, 2011 at 08:39 | #2

    问题同上,请楼主明示

  3. anchor
    November 23rd, 2011 at 14:05 | #3

    在读 很好很强大

  4. juvenxu
    November 29th, 2011 at 23:46 | #4

    在第2次印刷中已经修复,谢谢

  5. juvenxu
    November 29th, 2011 at 23:48 | #5

    59页文字描述有误,第3次印刷将修复,谢谢

  6. r7raul
    January 18th, 2012 at 09:54 | #6

    search.maven.org 使用NEXUS搭建私服 无法下载索引,求指导

Comment pages
1 2 3 4 355
  1. November 19th, 2010 at 09:57 | #1
  2. April 25th, 2011 at 13:39 | #2
  3. May 18th, 2011 at 14:56 | #3
  4. June 12th, 2011 at 22:31 | #4
  5. August 30th, 2011 at 15:49 | #5
  6. November 21st, 2011 at 00:21 | #6
  7. November 21st, 2011 at 00:23 | #7
  8. November 21st, 2011 at 00:25 | #8
  9. November 21st, 2011 at 00:25 | #9
*