第1章 课前准备 1
1.1 项目经理的工作 1
1.2 Maven的作用 1
第2章 开始学习Maven 2
2.1 Maven简介 2
2.2 安装Maven前的准备 2
2.2.1 下载合适的JDK安装软件安装 2
2.2.2 配置JDK环境变量 3
2.2.3 测试JDK是否安装成功 5
2.3 Maven的安装与配置 5
第3章 使用Maven开发第一个案例 8
3.1 创建Maven项目 8
3.1.1 使用命令向导一步步创建项目 9
3.1.2 在命令中输入所有必要信息直接创建项目 9
3.2 添加样例代码 10
3.2.1 HelloWorld.java 11
3.2.2 Test HelloWorld.java 11
3.3 编写Maven骨架文件 12
3.4 编译和测试 13
3.5 生成站点和报告文档 15
3.5.1 生成站点信息 15
3.5.2 生成API Doc文档 16
第4章 基于Eclipse安装Maven插件 18
4.1 搭建Eclipse+M2Eclipse的必要性 18
4.2 安装配置M2Eclipse插件 18
4.3 创建Maven项目 23
4.4 构建Maven项目 25
4.5 基于M2Eclipse完成所有工作 26
4.5.1 运行测试 27
4.5.2 生成javadoc API帮助文档 29
4.5.3 生成站点 30
4.5.4 测试报告 30
第5章 基于Maven开发Web应用 32
5.1 开发Web应用的思路 32
5.2 实现Web版HelloWorld 32
5.2.1 安装配置 Web应用的Archetype Catalog 32
5.2.2 基于Archetype向导创建Web工程 34
5.2.3 编写样例代码 35
5.2.4 构建Web项目 35
5.2.5 测试 39
5.3 基于Maven开发用户模块的CRUD 39
5.3.1 创建Web工程和初始化数据库 39
5.3.2 添加相关依赖 40
5.3.3 添加注册代码 41
5.3.4 构建项目 42
5.3.5 测试 43
第6章 开发企业级Web应用 44
6.1 企业Web应用简介 44
6.2 搭建Maven私服 44
6.2.1 下载Archiva 44
6.2.2 启动服务器 45
6.2.3 初始化和配置Archiva服务器 46
6.2.4 在开发员端配置对私服的使用 48
6.3 实现Struts2+Spring+Hibernate框架应用 50
6.3.1 创建公共POM模块 51
6.3.2 实现Hibernate DAO模块 57
6.3.3 实现Service模块 64
6.3.4 实现Struts2 Web模块 68
6.3.5 整合成SSH 73
6.4 实现SpringMVC十Spring十MyBatis框架应用 78
6.4.1 创建公共POM 78
6.4.2 实现MyBatis DAO模块 82
6.4.3 实现Spring的Service层模块 85
6.4.4 实现SpringMVC Web模块 86
6.4.5 整合成SSM 93
第7章 生成项目站点 95
7.1 生成基本站点 95
7.1.1 简单站点 95
7.1.2 完善站点信息 97
7.2 添加插件丰富站点信息 99
7.2.1 JavaDoc插件 99
7.2.2 源代码插件 101
7.2.3 测试报告插件 102
7.2.4 源代码分析插件 104
7.3 个性化站点 105
7.3.1 修饰外观 105
7.3.2 自定义页面 110
7.3.3 国际化 115
7.4 部署站点 116
7.4.1 在Tomcat 7上的DAV服务 117
7.4.2 设置Tomcat 7的用户名和密码 118
7.4.3 配置Maven的DAV自动部署 118
第8章 版本管理 121
8.1 简介 121
8.2 专业术语 121
8.2.1 快照版本 121
8.2.2 发布版本 121
8.2.3 版本管理关系 121
8.2.4 版本号的约定 122
8.2.5 主干、分支、标签 122
8.3 自动版本发布 123
8.3.1 准备环境 124
8.3.2 创建仓库 125
8.3.3 创建样例项目 125
8.4 GPG签名验证 130
8.4.1 第1阶段:手动操作GPG 131
8.4.2 第2阶段:基于Maven插件使用GPG 135
第9章 Maven核心概念 138
9.1 简介 138
9.2 生命周期 138
9.2.1 生命周期简介 138
9.2.2 深入生命周期 139
9.2.3 调用生命周期阶段 140
9.3 插件 144
9.3.1 插件的作用和目标 144
9.3.2 插件同生命周期阶段的绑定 144
9.3.3 插件参数配置 147
9.3.4 获取插件信息 149
9.3.5 调用插件 153
9.3.6 解析插件 154
9.4 坐标 156
9.4.1 groupId 157
9.4.2 artifactId 157
9.4.3 version 157
9.4.4 packaging 157
9.4.5 classifier 158
9.5 仓库 158
9.5.1 Maven仓库的定义 158
9.5.2 仓库的管理方式 159
9.5.3 仓库的种类 160
9.5.4 配置远程仓库 163
9.5.5 快照版本 166
9.5.6 从仓库中解析依赖的机制 167
9.5.7 镜像 167
9.5.8 仓库搜索服务 169
9.6 依赖 169
9.6.1 依赖是什么 169
9.6.2 依赖的配置 170
9.6.3 依赖的范围 170
9.6.4 传递性依赖 172
9.6.5 依赖的调解 173
9.6.6 排除依赖 175
9.6.7 归类依赖 175
9.6.8 优化依赖 177
9.7 继承和聚合 177
第10章 Maven测试 186
10.1 测试简介 186
10.2 测试框架 186
10.2.1 JUnit单元测试框架 186
10.2.2 TestNG测试框架 187
10.3 Maven测试插件 189
10.3.1 Surefire插件简介 189
10.3.2 跳过测试 190
10.3.3 个性化指定运行测试 191
10.3.4 包含和排除测试 192
10.4 测试报告 192
10.4.1 基本测试报告 193
10.4.2 测试覆盖率报告 194
10.5 重用测试代码 194
第11章 灵活构建Maven项目 196
11.1 Maven属性 196
11.1.1 内置属性 197
11.1.2 POM属性 197
11.1.3 自定义属性 197
11.1.4 Settings属性 197
11.1.5 Java系统属性 198
11.1.6 环境变量属性 198
11.2 需要灵活处理的构建环境 198
11.3 资源过滤 198
11.4 Maven的profile 200
11.4.1 针对不同环境的profile的配置 200
11.4.2 激活profile配置 201
11.4.3 profile的种类 204
11.5 Web资源过滤 205
11.6 在profile中激活集成测试 206
第12章 自定义Maven插件 208
12.1 自定义Maven插件简介 208
12.2 自定义Maven插件案例 209
12.3 自定义Maven插件的详细说明 215
12.3.1 Mojo标记 216
12.3.2 Mojo参数 217
12.4 自定义Maven插件中的错误处理和日志 221
第13章 Archetype扩展 222
13.1 Archetype使用概述 222
13.1.1 maven-archetype-quickstart 223
13.1.2 maven-archetype-webapp 223
13.1.3 AppFuse Archetype 223
13.2 自定义Archetype 224
13.3 Archetype数据库 224
13.3.1 Archetype数据库简介 224
13.3.2 使用本地Archetype数据库 225
13.4 在M2Eclipse中配置Archetype Catalogs 226
参考文献 227
附录 228