Maven实战
Maven实战
最新章节:8.3.1 account-parent(-)
你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目并促进团队交流,每天都有数以万计的开发者在访问中央仓库以获取他们需要的依赖。本书内容全面而系统,Maven的原理、使用方法和高级应用尽含其中;注重实战是本书的另一个特点,不仅在各个知识点都辅有大量的小案例,而且还有一个综合性的案例贯穿全书。如果你想使用Maven,或正在使用Maven,本书将给你绝佳的指导。
许晓斌《Maven实战》全部章节列表
- 1.3 Maven与极限编程
- 1.4 被误解的Maven
- 1.5 小结
- 第2章 Maven的安装和配置
- 2.1 在Windows上安装Maven
- 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 配置用户范围settings.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.6.3 运行mvn命令
- 3.7 NetBeans Maven插件简单使用
- 3.7.1 打开Maven项目
- 3.7.2 创建Maven项目
- 3.7.3 运行mvn命令
- 3.8 小结
- 第4章 背景案例
- 4.1 简单的账户注册服务
- 4.2.1 需求用例
- 4.2.2 界面原型
- 4.3 简要设计
- 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.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 错误处理和日志
- 17.6 测试Maven插件
- 17.7 小结
- 第18章 Archetype
- 18.1 Archetype使用再叙
- 18.1.1 Maven Archetype Plugin
- 18.1.2 使用Archetype的一般步骤
- 18.1.3 批处理方式使用Archetype
- 18.1.4 常用Archetype介绍
- 18.2 编写Archetype
- 18.3 Archetype Catalog
- 18.3.1 什么是Archetype Catalog
- 18.3.2 Archetype Catalog的来源
- 18.3.3 生成本地仓库的Archetype Catalog
- 18.3.4 使用nexus-archetype-plugin
- 18.4 小结
- 附录C 常用插件列表
- 前言
- 第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]
- 1.3 Maven与极限编程
- 1.4 被误解的Maven
- 1.5 小结
- 第2章 Maven的安装和配置
- 2.1 在Windows上安装Maven
- 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 配置用户范围settings.xml
- 2.7.3 不要使用IDE内嵌的Maven
- 2.8 小结
- 第3章 Maven使用入门
- 3.1 编写POM
- 3.2 编写主代码
- 3.3 编写测试代码
- 3.5 使用Archetype生成项目骨架
- 3.6 m2eclipse简单使用
- 3.6.1 导入Maven项目
- 3.6.2 创建Maven项目
- 3.6.3 运行mvn命令
- 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.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.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