maven权威指南

Maven权威指南

Authors

 

Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu ()

Abstract

Maven权威指南是一本关于Apache Maven的书。


Copyright
1. Creative Commons BY-ND-NC
Foreword: Beta 0.16 Preface
1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing Conventions 5. Acknowledgements
1. 介绍 Apache Maven
1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结
2. 安装和运行Maven
2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven
2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上安装Maven
2.4. 验证Maven安装 2.5. Maven安装细节
2.5.1. 用户相关配置和仓库 2.5.2. 升级Maven
2.6. 获得Maven帮助 2.7. 使用Maven Help插件
2.7.1. 描述一个Maven插件
2.8. 关于Apache软件许可证
I. Maven实战
3. 一个简单的Maven项目
3.1. 简介
3.1.1. 下载本章的例子
3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念
3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting)
3.6. 小结
4. 定制一个Maven项目
4.1. 介绍
4.1.1. 下载本章样例
4.2. 定义Simple Weather项目
4.2.1. Yahoo! Weather RSS
4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. Simple Weather源码 4.7. 添加资源 4.8. 运行Simple Weather项目
4.8.1. Maven Exec 插件 4.8.2. 浏览你的项目依赖
4.9. 编写单元测试 4.10. 添加测试范围依赖 4.11. 添加单元测试资源 4.12. 执行单元测试
4.12.1. 忽略测试失败 4.12.2. 跳过单元测试
4.13. 构建一个打包好的命令行应用程序
5. 一个简单的Web应用
5.1. 介绍
5.1.1. 下载本章样例
5.2. 定义这个简单的Web应用 5.3. 创建这个简单的Web应用 5.4. 配置Jetty插件 5.5. 添加一个简单的Servlet 5.6. 添加J2EE依赖 5.7. 小结
6. 一个多模块项目
6.1. 简介
6.1.1. 下载本章样例
6.2. simple-parent 项目 6.3. simple-weather 模块 6.4. simple-webapp 模块 6.5. 构建这个多模块项目 6.6. 运行Web应用
7. 多模块企业级项目
7.1. 简介
7.1.1. 下载本章样例 7.1.2. 多模块企业级项目 7.1.3. 本例中所用的技术
7.2. simple-parent项目 7.3. simple-model模块 7.4. simple-weather模块 7.5. simple-persist模块 7.6. simple-webapp模块 7.7. 运行这个Web应用 7.8. simple-command模块 7.9. 运行这个命令行程序 7.10. 小结
7.10.1. 编写接口项目程序
8. 优化和重构POM
8.1. 简介 8.2. POM清理 8.3. 优化依赖 8.4. 优化插件 8.5. 使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结
II. Maven Reference
9. 项目对象模型
9.1. 简介 9.2. POM
9.2.1. 超级POM 9.2.2. 最简单的POM 9.2.3. 有效POM 9.2.4. 真正的POM
9.3. POM语法
9.3.1. 项目版本
9.3.1.1. 版本构建号 9.3.1.2. SNAPSHOT版本 9.3.1.3. LATEST 和 RELEASE 版本
9.3.2. 属性引用
9.4. 项目依赖
9.4.1. 依赖范围 9.4.2. 可选依赖 9.4.3. 依赖版本界限 9.4.4. 传递性依赖
9.4.4.1. 传递性依赖和范围
9.4.5. 冲突解决 9.4.6. 依赖管理
9.5. 项目关系
9.5.1. 坐标详解 9.5.2. 多模块项目 9.5.3. 项目继承
9.6. POM最佳实践
9.6.1. 依赖归类 9.6.2. 多模块 vs. 继承
9.6.2.1. 简单项目 9.6.2.2. 多模块企业级项目 9.6.2.3. 原型父项目
10. 构建生命周期
10.1. 简介
10.1.1. 清理生命周期 (clean) 10.1.2. 默认生命周期 (default) 10.1.3. 站点生命周期 (site)
10.2. 打包相关生命周期
10.2.1. JAR 10.2.2. POM 10.2.3. Maven Plugin 10.2.4. EJB 10.2.5. WAR 10.2.6. EAR 10.2.7. 其它打包类型
10.3. 通用生命周期目标
10.3.1. Process Resources 10.3.2. Compile 10.3.3. Process Test Resources 10.3.4. Test Compile 10.3.5. Test 10.3.6. Install 10.3.7. Deploy
11. 构建Profile
11.1. Profile是用来做什么的?
11.1.1. 什么是构建可移植性
11.1.1.1. 不可移植构建 11.1.1.2. 环境可移植性 11.1.1.3. 组织(内部)可移植性 11.1.1.4. 广泛(全局)可移植性
11.1.2. 选择一个适当级别的可移植性
11.2. 通过Maven Profiles实现可移植性
11.2.1. 覆盖一个项目对象模型
11.3. 激活Profile
11.3.1. 激活配置 11.3.2. 通过属性缺失激活
11.4. 外部Profile 11.5. Settings Profile
11.5.1. 全局Settings Profile
11.6. 列出活动的Profile 11.7. 提示和技巧
11.7.1. 常见的环境 11.7.2. 安全保护 11.7.3. 平台分类器
11.8. 小结
12. Maven套件
12.1. 简介 12.2. Assembly基础
12.2.1. 预定义的套件描述符 12.2.2. 构建一个套件Building an Assembly 12.2.3. 套件作为依赖 12.2.4. 通过套件依赖组装套件
12.3. 套件描述符概述 12.4. 套件描述符
12.4.1. 套件描述符中的属性引用 12.4.2. 必须的套件信息
12.5. 控制一个套件的内容
12.5.1. Files 元素 12.5.2. FileSets 元素 12.5.3. fileSets的默认排除模式 12.5.4. dependencySets 元素
12.5.4.1. 自定义依赖输出目录 12.5.4.2. 依赖输出位置的属性插值 12.5.4.3. Including and Excluding Dependencies by Scope 12.5.4.4. Fine Tuning: Dependency Includes and Excludes 12.5.4.5. Transitive Dependencies, Project Attachments, and Project Artifacts 12.5.4.6. Advanced Unpacking Options 12.5.4.7. Summarizing Dependency Sets
12.5.5. moduleSets 部分
12.5.5.1. Module Selection 12.5.5.2. Sources Section 12.5.5.3. Interpolation of outputDirectoryMapping in moduleSets 12.5.5.4. Binaries section 12.5.5.5. moduleSets, Parent POMs and the binaries Section
12.5.6. Repositories Section 12.5.7. Managing the Assembly’s Root Directory 12.5.8. componentDescriptors and containerDescriptorHandlers
12.6. Best Practices
12.6.1. Standard, Reusable Assembly Descriptors 12.6.2. Distribution (Aggregating) Assemblies
12.7. Summary
13. 属性和资源过滤
13.1. 简介 13.2. Maven属性
13.2.1. Maven项目的属性 13.2.2. Maven的Settings属性 13.2.3. 环境变量属性 13.2.4. Java系统属性 13.2.5. 用户定义的属性
13.3. 资源过滤
14. Maven和Eclipse: m2eclipse
14.1. 简介 14.2. m2eclipse 14.3. 安装 m2eclipse 插件
14.3.1. 安装前提条件
14.3.1.1. 安装 Subclipse 14.3.1.2. 安装 Mylyn 14.3.1.3. 安装 AspectJ Tools Platform (AJDT) 14.3.1.4. 安装 Web Tools Platform (WTP)
14.3.2. 安装 m2eclipse
14.4. 开启 Maven 控制台 14.5. 创建一个 Maven 项目
14.5.1. 从 SCM 签出一个 Maven 项目 14.5.2. 用Maven Archetype创建一个Maven项目 14.5.3. 创建一个 Maven 模块
14.6. 创建一个Maven POM文件 14.7. 导入Maven项目
14.7.1. 导入一个Maven项目 14.7.2. 具体化一个Maven项目
14.8. 运行Maven构建 14.9. 使用Maven进行工作
14.9.1. 添加及更新依赖或插件 14.9.2. 创建一个Maven模块 14.9.3. 下载源码 14.9.4. 打开项目页面 14.9.5. 解析依赖
14.10. 使用Maven仓库进行工作
14.10.1. 搜索 Maven 构件和 Java 类 14.10.2. 为Maven仓库编制索引
14.11. 使用基于表单的POM编辑器 14.12. 在m2eclipse中分析项目依赖 14.13. Maven 选项 14.14. 小结
15. 站点生成
15.1. 简介 15.2. 使用Maven构建项目站点 15.3. 自定义站点描述符
15.3.1. 自定义页面顶端图片 15.3.2. 自定义导航菜单
15.4. 站点目录结构 15.5. 编写项目文档
15.5.1. APT样例 15.5.2. FML样例
15.6. 部署你的项目web站点
15.6.1. 配置服务器认证 15.6.2. 配置文件和目录模式
15.7. 自定义站点外观
15.7.1. 自定义站点CSS 15.7.2. 创建自定义的站点模板 15.7.3. 可重用的web站点皮肤 15.7.4. 创建自定义的主题CSS 15.7.5. 在皮肤中自定义站点模板
15.8. 提示与技巧
15.8.1. 给HEAD嵌入XHTML 15.8.2. 在你站点logo下添加链接 15.8.3. 为你的站点添加导航链接 15.8.4. 添加项目版本 15.8.5. 修改发布日期格式和位置 15.8.6. 使用Doxia宏
16. 仓库管理器
16.1. 简介
16.1.1. Nexus历史
16.2. 安装Nexus
16.2.1. 从Sonatype下载Nexus 16.2.2. 安装Nexus 16.2.3. 运行Nexus 16.2.4. 安装后检查单 16.2.5. 为Redhat/Fedora/CentOS设置启动脚本 16.2.6. 升级Nexus版本
16.3. 使用Nexus
16.3.1. 浏览仓库 16.3.2. 浏览组 16.3.3. 搜索构件 16.3.4. 浏览系统RSS源 16.3.5. 浏览日志文件和配置 16.3.6. 更改你的密码
16.4. 配置Maven使用Nexus
16.4.1. 使用Nexus中央代理仓库 16.4.2. 使用Nexus作为快照仓库 16.4.3. 为缺少的依赖添加仓库 16.4.4. 添加一个新的仓库 16.4.5. 添加一个仓库至一个组
16.5. 配置Nexus
16.5.. 定制服务器配置 16.5.2. 管理仓库 16.5.3. 管理组 16.5.4. 管理路由 16.5.5. 网络配置
16.6. 维护仓库 16.7. 部署构件至Nexus
16.7.1. 部署发布版 16.7.2. 部署快照版 16.7.3. 部署第三方构件
17. 编写插件
17.1. 简介 17.2. Maven编程
17.2.1. 什么是反转控制? 17.2.2. Plexus简介 17.2.3. 为什么使用Plexus? 17.2.4. 什么是插件?
17.3. 插件描述符
17.3.1. 顶层插件描述符元素 17.3.2. Mojo配置 17.3.3. 插件依赖
17.4. 编写自定义插件
17.4.1. 创建一个插件项目 17.4.2. 一个简单的Java Mojo 17.4.3. 配置插件前缀 17.4.4. 插件中的日志 17.4.5. Mojo类注解 17.4.6. 当Mojo失败的时候
17.5. Mojo参数
17.5.1. 为Mojo参数提供值 17.5.2. 多值的Mojo参数 17.5.3. 依赖于一个Plexus组件 17.5.4. Mojo参数注解
17.6. 插件和Maven生命周期
17.6.1. 执行平行的生命周期 17.6.2. 创建自定义的生命周期 17.6.3. 覆盖默认生命周期
18. Writing Plugins in Alternative Languages
18.1. Writing Plugins in Ant 18.2. Creating an Ant Plugin 18.3. Writing Plugins in JRuby
18.3.1. Creating a JRuby Plugin 18.3.2. Ruby Mojo Implementations 18.3.3. Logging from a Ruby Mojo 18.3.4. Raising a MojoError 18.3.5. Referencing Plexus Components from JRuby
18.4. Writing Plugins in Groovy
18.4.1. Creating a Groovy Plugin
A. 附录: Settings细节
A.1. 简介 A.2. Settings细节
A.2.1. 简单值 A.2.2. 服务器(Servers) A.2.3. 镜像(Mirrors) A.2.4. 代理(Proxies) A.2.5. Profiles A.2.6. 激活(Activation) A.2.7. 属性(Properties) A.2.8. 仓库(Repositories) A.2.9. 插件仓库 A.2.10. 激活的Profile
B. Appendix: Sun Specification Alternatives
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值