==[201011][Maven 实战][许晓斌][著]==
第 1 章 Maven 简介
1.1 何为 Maven
1.1.1 何为构建
1.1.2 Maven 是优秀的构建工具
1.1.3 Maven 不仅仅是构建工具
1.2 为什么需要 Maven
1.2.1 组装 PC 和品牌 PC
1.2.2 IDE 不是万能的
1.2.3 Make
1.2.4 Ant
1.2.5 不重复发明轮子
1.3 Maven 与极限编程
1.4 被误解的 Maven
1.5 小结
第 2 章 Maven 的安装和配置
2.1 在 Windows 上安装 Maven
2.1.1 检查 JDK 安装
2.1.2 下载 Maven
2.1.3 本地安装
2.1.4 升级 Maven
2.2 在基于 UNIX 的系统上安装 Maven
2.2.1 下载和安装
2.2.2 升级 Maven
2.3 安装目录分析
2.3.1 M2_HOME
2.3.2 ~/.M2
2.4 设置 HTTP 代理
2.5 安装 m2eclipse
2.6 安装 NetBeans Maven 插件
2.7 Maven 安装最佳实践
2.7.1 设置 MAVEN_OPTS 环境变量
2.7.2 配置用户范围 setting.xml
2.7.3 不要使用 IDE 内嵌的 Maven
2.8 小结
第 3 章 Maven 使用入门
3.1 编写 POM
3.2 编写主代码
3.3 编写测试代码
3.4 打包和运行
3.5 使用 Archetype 生成项目骨架
3.6 m2eclipse 简单使用
3.6.1 导入 Maven 项目
3.6.2 创建 Maven 项目
3.7 NetBeans Maven 插件简单使用
3.7.1 打开 Maven 项目
3.7.2 创建 Maven 项目
3.7.3 运行 mvn 命令
3.8 小结
第 4 章 背景案例
4.1 简单的账户注册服务
4.2 需求阐述
4.2.1 需求用例
4.2.2 界面原型
4.3 简要设计
4.3.1 接口
4.3.2 模块结构
4.4 小结
第 5 章 坐标和依赖
5.1 何为 Maven 坐标
5.2 坐标详解
5.3 account-email
5.3.1 account-email 的 POM
5.3.2 account-email 的主代码
5.3.3 account-email 的测试代码
5.3.4 构建 account-email
5.4 依赖的配置
5.5 依赖范围
5.6 传递性依赖
5.6.1 何为传递性依赖
5.6.2 传递性依赖和依赖范围
5.7 依赖调解
5.8 可选依赖
5.9 最佳实践
5.9.1 排除依赖
5.9.2 归类依赖
5.9.3 优化依赖
5.10 小结
第 6 章 仓库
6.1 何为 Maven 仓库
6.2 仓库的布局
6.3 仓库的分类
6.3.1 本地仓库
6.3.2 远程仓库
6.3.3 中央仓库
6.3.4 私服
6.4 远程仓库的配置
6.4.1 远程仓库的认证
6.4.2 部署至远程仓库
6.5 快照版本
6.6 从仓库解析依赖的机制
6.7 镜像
6.8 仓库搜索服务
6.8.1 Sonatype Nexus
6.8.2 Jarvana
6.8.3 MVNbrowser
6.8.4 MVNrepository
6.8.5 选择合适的仓库搜索服务
6.9 小结
第 7 章 生命周期和插件
7.1 何为生命周期
7.2 生命周期详解
7.2.1 三套生命周期
7.2.2 clean 生命周期
7.2.3 default 生命周期
7.2.4 site 生命周期
7.2.5 命令行与生命周期
7.3 插件目标
7.4 插件绑定
7.4.1 内置绑定
7.4.2 自定义绑定
7.5 插件配置
7.5.1 命令行插件配置
7.5.2 POM 中插件全局配置
7.5.3 POM 中插件任务配置
7.6 获取插件信息
7.6.1 在线插件信息
7.6.2 使用 maven-help-plugin 描述插件
7.7 从命令行调用插件
7.8 插件解析机制
7.8.1 插件仓库
7.8.2 插件的默认 groupId
7.8.3 解析插件版本
7.8.4 解析插件前缀
7.9 小结
第 8 章 聚合与继承
8.1 account-persist
8.1.1 account-persist 的 POM
8.1.2 account-persist 的主代码
8.1.3 account-persist 的测试代码
8.2 聚合
8.3 继承
8.3.1 account-parent
8.3.2 可继承的 POM 元素
8.3.3 依赖管理
8.3.4 插件管理
8.4 聚合与继承的关系
8.5 约定优于配置
8.6 反应堆
8.6.1 反应堆的构建顺序
8.6.2 裁剪反应堆
8.7 小结
第 9 章 使用 Nexus 创建私服
9.1 Nexus 简介
9.2 安装 Nexus
9.2.1 下载 Nexus
9.2.2 Bundle 方式安装 Nexus
9.2.3 WAR 方式安装 Nexus
9.2.4 登录 Nexus
9.3 Nexus 的仓库与仓库组
9.3.1 Nexus 内置的仓库
9.3.2 Nexus 仓库分类的概念
9.3.3 创建 Nexus 宿主仓库
9.3.4 创建 Nexus 代理仓库
9.3.5 创建 Nexus 仓库组
9.4 Nexus 的索引与构件搜索
9.5 配置 Maven 从 Nexus 下载构件
9.6 部署构件至 Nexus
9.6.1 使用 Maven 部署构件至 Nexus
9.6.2 手动部署第三方构件至 Nexus
9.7 Nexus 的权限管理
9.7.1 Nexus 的访问控制模型
9.7.2 为项目分配独立的仓库
9.8 Nexus 的调度任务
9.9 其他私服软件
9.10 小结
第 10 章 使用 Maven 进行测试
10.1 account-captcha
10.1.1 account-captcha 的 POM
10.1.2 account-captcha 的主代码
10.1.3 account-captcha 的测试代码
10.2 maven-surefire-plugin 简介
10.3 跳过测试
10.4 动态指定要运行的测试用例
10.5 包含与排除测试用例
10.6 测试报告
10.6.1 基本的测试报告
10.6.2 测试覆盖率报告
10.7 运行 TestNG 测试
10.8 重用测试代码
10.9 小结
第 11 章 使用 Hudson 进行持续集成
11.1 持续集成的作用、过程和优势
11.2 Hudson 简介
11.3 安装 Hudson
11.4 准备 Subversion 仓库
11.5 Hudson 的基本系统设置
11.6 创建 Hudson 任务
11.6.1 Hudson 任务的基本配置
11.6.2 Hudson 任务的源码仓库配置
11.6.3 Hudson 任务的构建触发配置
11.6.4 Hudson 任务的构建配置
11.7 监视 Hudson 任务状态
11.7.1 全局任务状态
11.7.2 自定义任务视图
11.7.3 单个任务状态
11.7.4 Maven 项目测试报告
11.8 Hudson 用户管理
11.9 邮件反馈
11.10 Hudson 工作目录
11.11 小结
第 12 章 使用 Maven 构建 Web 应用
12.1 Web 项目的目录结构
12.2 account-service
12.2.1 account-service 的 POM
12.2.2 account-service 的主代码
12.3 account-web
12.3.1 account-web 的 POM
12.3.2 account-web 的主代码
12.4 使用 jetty-maven-plugin 进行测试
12.5 使用 Cargo 实现自动化部署
12.5.1 部署至本地 Web 容器
12.5.2 部署至远程 Web 容器
12.6 小结
第 13 章 版本管理
13.1 何为版本管理
13.2 Maven 的版本号定义约定
13.3 主干、标签与分支
13.4 自动化版本发布
13.5 自动化创建分支
13.6 GPG 签名
13.6.1 GPG 及其基本使用
13.6.2 Maven GPG Plugin
13.7 小结
第 14 章 灵活的构建
14.1 Maven 属性
14.2 构建环境的差异
14.3 资源过滤
14.4 Maven Profile
14.4.1 针对不同环境的 profile
14.4.2 激活 profile
14.4.3 profile 的种类
14.5 Web 资源过滤
14.6 在 profile 中激活集成测试
14.7 小结
第 15 章 生成项目站点
15.1 最简单的站点
15.2 丰富项目信息
15.3 项目报告插件
15.3.1 JavaDocs
15.3.2 Source Xref
15.3.3 CheckStyle
15.3.4 PMD
15.3.5 ChangeLog
15.3.6 Cobertura
15.4 自定义站点外观
15.4.1 站点描述符
15.4.2 头部内容及外观
15.4.3 皮肤
15.4.4 导航边栏
15.5 创建自定义页面
15.6 国际化
15.7 部署站点
15.8 小结
第 16 章 m2eclipse
16.1 m2eclipse 简介
16.2 新建 Maven 项目
16.3 导入 Maven 项目
16.3.1 导入本地 Maven 项目
16.3.2 从 SCM 仓库导入 Maven 项目
16.3.3 m2eclipse 中 Maven 项目的结构
16.4 执行 mvn 命令
16.5 访问 Maven 仓库
16.5.1 Maven 仓库视图
16.5.2 搜索构件和 Java 类
16.6 管理项目依赖
16.6.1 添加依赖
16.6.2 分析依赖
16.7 其他实用功能
16.7.1 POM 编辑的代码提示
16.7.2 Effective POM
16.7.3 下载依赖源码
16.8 小结
第 17 章 编写 Maven 插件
17.1 编写 Maven 插件的一般步骤
17.2 案例:编写一个用于代码行统计的 Maven 插件
17.3 Mojo 标注
17.4 Mojo 参数
17.5 错误处理和日志 336
17.6 测试 Maven 插件 337
17.7 小结
第 18 章 Archetype
18.1 Archetype 使用再叙 343
18.1.1 Maven Archetype Plugin 343
18.1.2 使用 Archetype 的一般步骤 343
18.1.3 批处理方式使用 Archetype 344
18.1.4 常用 Archetype 介绍 345
18.2 编写 Archetype 347
18.3 Archetype Catalog 352
18.3.1 什么是 Archetype Catalog 352
18.3.2 Archetype Catalog 的来源 353
18.3.3 生成本地仓库的 Archetype Catalog 354
18.3.4 使用 nexus-archetype-plugin 355
18.4 小结 356
附录 A POM 元素参考 357
附录 B Settings 元素参考 359
附录 C 常用插件列表 360