实例介绍
【实例简介】
【实例截图】
【核心代码】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 | 目录 版权 ................................................................... xi 1. Creative Commons BY-ND-NC ...................................... xi 序: Beta 0.2 ........................................................ xiii 前言 .................................................................. xiv 1. 如何使用本书 .................................................. xiv 2. 你的反馈 ....................................................... xv 3. 字体约定3 ....................................................... xv 4. Maven书写约定4 .................................................. xv 5. 致谢 .......................................................... xvi 1. 介绍 Apache Maven ................................................... 1 1.1. Maven... 它是什么? ............................................ 1 1.2. 约定优于配置(Convention Over Configuration) .................. 1 1.3. 一个一般的接口 ................................................ 2 1.4. 基于Maven插件的全局性重用 ...................................... 3 1.5. 一个“项目”的概念模型 ......................................... 4 1.6. Maven是Ant的另一种选择么? ..................................... 4 1.7. 比较Maven和Ant ................................................ 5 1.8. 总结 .......................................................... 9 2. 安装和运行Maven ..................................................... 10 2.1. 验证你的Java安装 ............................................. 10 2.2. 下载Maven .................................................... 10 2.3. 安装Maven .................................................... 10 2.3.1. 在Mac OSX上安装Maven ................................... 11 2.3.2. 在Microsoft Windows上安装Maven ......................... 11 2.3.3. 在Linux上安装Maven ..................................... 12 2.3.4. 在FreeBSD或OpenBSD上安装Maven ........................... 12 2.4. 验证Maven安装 ................................................ 12 2.5. Maven安装细节 ................................................ 12 2.5.1. 用户相关配置和仓库 ..................................... 13 2.5.2. 升级Maven .............................................. 13 2.6. 获得Maven帮助 ................................................ 13 2.7. 使用Maven Help插件 ........................................... 14 2.7.1. 描述一个Maven插件 ...................................... 15 2.8. 关于Apache软件许可证 .......................................... 17 I. Maven实战 ........................................................... 19 3. 一个简单的Maven项目 ............................................. 20 3.1. 简介 ..................................................... 20 3.1.1. 下载本章的例子 ..................................... 20 3.2. 创建一个简单的项目 ....................................... 20 3.3. 构建一个简单的项目 ....................................... 22 Maven权威指南 iii 3.4. 简单的项目对象模型 (Project Object Model) ................ 23 3.5. 核心概念 ................................................. 24 3.5.1. Maven插件和目标 (Plugins and Goals) ................ 25 3.5.2. Maven生命周期 (Lifecycle) .......................... 26 3.5.3. Maven坐标 (Coordinates) ............................ 32 3.5.4. Maven仓库(Repositories) ............................ 34 3.5.5. Maven依赖管理 (Dependency Management) .............. 36 3.5.6. 站点生成和报告 (Site Generation and Reporting) ...... 38 3.6. 小结 ..................................................... 38 4. 定制一个Maven项目 .............................................. 39 4.1. 介绍 ..................................................... 39 4.1.1. 下载本章样例 ....................................... 39 4.2. 定义Simple Weather项目 ................................... 39 4.2.1. Yahoo! Weather RSS ................................ 39 4.3. 创建Simple Weather项目 ................................... 40 4.4. 定制项目信息 ............................................. 41 4.5. 添加新的依赖 ............................................. 43 4.6. Simple Weather源码 ....................................... 45 4.7. 添加资源 ................................................. 51 4.8. 运行Simple Weather项目 ................................... 52 4.8.1. Maven Exec 插件 ................................... 53 4.8.2. 浏览你的项目依赖 ................................... 53 4.9. 编写单元测试 ............................................. 55 4.10. 添加测试范围依赖 ........................................ 58 4.11. 添加单元测试资源 ........................................ 58 4.12. 执行单元测试 ............................................ 61 4.12.1. 忽略测试失败 ...................................... 62 4.12.2. 跳过单元测试 ...................................... 63 4.13. 构建一个打包好的命令行应用程序 ........................... 63 5. 一个简单的Web应用 .............................................. 66 5.1. 介绍 ..................................................... 66 5.1.1. 下载本章样例 ....................................... 66 5.2. 定义这个简单的Web应用 .................................... 66 5.3. 创建这个简单的Web应用 .................................... 66 5.4. 配置Jetty插件 ............................................ 68 5.5. 添加一个简单的Servlet .................................... 70 5.6. 添加J2EE依赖 ............................................. 72 5.7. 小结 ..................................................... 74 6. 一个多模块项目 ................................................. 75 6.1. 简介 ..................................................... 75 Maven权威指南 iv 6.1.1. 下载本章样例 ....................................... 75 6.2. simple-parent 项目 ....................................... 75 6.3. simple-weather 模块 ...................................... 77 6.4. simple-webapp 模块 ....................................... 80 6.5. 构建这个多模块项目 ....................................... 82 6.6. 运行Web应用 .............................................. 84 7. 多模块企业级项目 ............................................... 85 7.1. 简介 ..................................................... 85 7.1.1. 下载本章样例 ....................................... 85 7.1.2. 多模块企业级项目 ................................... 85 7.1.3. 本例中所用的技术 ................................... 87 7.2. simple-parent项目 ........................................ 88 7.3. simple-model模块 ......................................... 90 7.4. simple-weather模块 ....................................... 94 7.5. simple-persist模块 ....................................... 99 7.6. simple-webapp模块 ....................................... 108 7.7. 运行这个Web应用 ......................................... 118 7.8. simple-command模块 ...................................... 120 7.9. 运行这个命令行程序 ...................................... 126 7.10. 小结 ................................................... 129 7.10.1. 编写接口项目程序 ................................. 129 8. 优化和重构POM ................................................. 131 8.1. 简介 .................................................... 131 8.2. POM清理 ................................................. 131 8.3. 优化依赖 ................................................ 132 8.4. 优化插件 ................................................ 136 8.5. 使用Maven Dependency插件进行优化 ........................ 137 8.6. 最终的POM ............................................... 140 8.7. 小结 .................................................... 150 II. Maven参考 ......................................................... 151 9. 项目对象模型 .................................................. 152 9.1. 简介 .................................................... 152 9.2. POM ..................................................... 152 9.2.1. 超级POM ........................................... 154 9.2.2. 最简单的POM ....................................... 156 9.2.3. 有效POM ........................................... 157 9.2.4. 真正的POM ......................................... 157 9.3. POM语法 ................................................. 158 9.3.1. 项目版本 .......................................... 158 9.3.2. 属性引用 .......................................... 160 Maven权威指南 v 9.4. 项目依赖 ................................................ 161 9.4.1. 依赖范围 .......................................... 162 9.4.2. 可选依赖 .......................................... 163 9.4.3. 依赖版本界限 ...................................... 165 9.4.4. 传递性依赖 ........................................ 166 9.4.5. 冲突解决 .......................................... 167 9.4.6. 依赖管理 .......................................... 169 9.5. 项目关系 ................................................ 171 9.5.1. 坐标详解 .......................................... 171 9.5.2. 多模块项目 ........................................ 172 9.5.3. 项目继承 .......................................... 174 9.6. POM最佳实践 ............................................. 176 9.6.1. 依赖归类 .......................................... 176 9.6.2. 多模块 vs. 继承 .................................. 178 10. 构建生命周期 ................................................. 184 10.1. 简介 ................................................... 184 10.1.1. 清理生命周期 (clean) ............................. 184 10.1.2. 默认生命周期 (default) ........................... 188 10.1.3. 站点生命周期 (site) .............................. 190 10.2. 打包相关生命周期 ....................................... 190 10.2.1. JAR .............................................. 190 10.2.2. POM .............................................. 191 10.2.3. Maven Plugin ..................................... 191 10.2.4. EJB .............................................. 192 10.2.5. WAR .............................................. 193 10.2.6. EAR .............................................. 193 10.2.7. 其它打包类型 ..................................... 194 10.3. 通用生命周期目标 ....................................... 195 10.3.1. Process Resources ................................ 195 10.3.2. Compile .......................................... 199 10.3.3. Process Test Resources ........................... 200 10.3.4. Test Compile ..................................... 200 10.3.5. Test ............................................. 201 10.3.6. Install .......................................... 202 10.3.7. Deploy ........................................... 202 11. 构建Profile .................................................. 203 11.1. Profile是用来做什么的? ................................. 203 11.1.1. 什么是构建可移植性 ............................... 203 11.1.2. 选择一个适当级别的可移植性 ....................... 204 11.2. 通过Maven Profiles实现可移植性 ......................... 205 Maven权威指南 vi 11.2.1. 覆盖一个项目对象模型 ............................. 207 11.3. 激活Profile ............................................ 208 11.3.1. 激活配置 ......................................... 210 11.3.2. 通过属性缺失激活 ................................. 212 11.4. 外部Profile ............................................ 212 11.5. Settings Profile ....................................... 213 11.5.1. 全局Settings Profile ............................. 215 11.6. 列出活动的Profile ...................................... 215 11.7. 提示和技巧 ............................................. 216 11.7.1. 常见的环境 ....................................... 216 11.7.2. 安全保护 ......................................... 218 11.7.3. 平台分类器 ....................................... 219 11.8. 小结 ................................................... 222 12. Maven套件 .................................................... 223 12.1. 简介 ................................................... 223 12.2. Assembly基础 ........................................... 223 12.2.1. 预定义的套件描述符 ............................... 224 12.2.2. 构建一个套件Building an Assembly ................. 225 12.2.3. 套件作为依赖 ..................................... 227 12.2.4. 通过套件依赖组装套件 ............................. 228 12.3. 套件描述符概述 ......................................... 232 12.4. 套件描述符 ............................................. 234 12.4.1. 套件描述符中的属性引用 ........................... 234 12.4.2. 必须的套件信息 ................................... 234 12.5. 控制一个套件的内容 ..................................... 236 12.5.1. Files 元素 ....................................... 236 12.5.2. FileSets 元素 .................................... 237 12.5.3. fileSets####### ................................... 239 12.5.4. dependencySets 元素 .............................. 241 12.5.5. moduleSets 元素 .................................. 250 12.5.6. Repositories元素 ................................. 256 12.5.7. 管理套件的根目录 ................................. 256 12.5.8. componentDescriptors和containerDescriptorHandlers ... 257 12.6. 最佳实践 ............................................... 258 12.6.1. 标准的,可重用的套件描述符 ....................... 258 12.6.2. 分发(聚合)套件 ................................. 261 12.7. 总结 ................................................... 265 13. 属性和资源过滤 ............................................... 266 13.1. 简介 ................................................... 266 13.2. Maven属性 .............................................. 266 Maven权威指南 vii 13.2.1. Maven项目的属性 .................................. 267 13.2.2. Maven的Settings属性 .............................. 268 13.2.3. 环境变量属性 ..................................... 269 13.2.4. Java系统属性 ..................................... 269 13.2.5. 用户定义的属性 ................................... 271 13.3. 资源过滤 ............................................... 272 14. Maven和Eclipse: m2eclipse .................................... 276 14.1. 简介 ................................................... 276 14.2. m2eclipse .............................................. 276 14.3. 安装 m2eclipse 插件 .................................... 277 14.3.1. 安装前提条件 ..................................... 277 14.3.2. 安装 m2eclipse ................................... 279 14.4. 开启 Maven 控制台 ...................................... 279 14.5. 创建一个 Maven 项目 .................................... 280 14.5.1. 从 SCM 签出一个 Maven 项目 ...................... 281 14.5.2. 用Maven Archetype创建一个Maven项目 ............... 283 14.5.3. 创建一个 Maven 模块 .............................. 285 14.6. 创建一个Maven POM文件 .................................. 287 14.7. 导入Maven项目 .......................................... 290 14.7.1. 导入一个Maven项目 ................................ 292 14.7.2. 具体化一个Maven项目 .............................. 293 14.8. 运行Maven构建 .......................................... 296 14.9. 使用Maven进行工作 ...................................... 298 14.9.1. 添加及更新依赖或插件 ............................. 300 14.9.2. 创建一个Maven模块 ................................ 301 14.9.3. 下载源码 ......................................... 302 14.9.4. 打开项目页面 ..................................... 302 14.9.5. 解析依赖 ......................................... 302 14.10. 使用Maven仓库进行工作 ................................. 302 14.10.1. 搜索 Maven 构件和 Java 类 ...................... 303 14.10.2. 为Maven仓库编制索引 ............................. 306 14.11. 使用基于表单的POM编辑器 ............................... 308 14.12. 在m2eclipse中分析项目依赖 ............................. 317 14.13. Maven 选项 ............................................ 322 14.14. 小结 .................................................. 327 15. 站点生成 ..................................................... 328 15.1. 简介 ................................................... 328 15.2. 使用Maven构建项目站点 .................................. 328 15.3. 自定义站点描述符 ....................................... 331 15.3.1. 自定义页面顶端图片 ............................... 332 Maven权威指南 viii 15.3.2. 自定义导航菜单 ................................... 333 15.4. 站点目录结构 ........................................... 334 15.5. 编写项目文档 ........................................... 335 15.5.1. APT样例 .......................................... 336 15.5.2. FML样例 .......................................... 336 15.6. 部署你的项目web站点 .................................... 337 15.6.1. 配置服务器认证 ................................... 338 15.6.2. 配置文件和目录模式 ............................... 339 15.7. 自定义站点外观 ......................................... 339 15.7.1. 自定义站点CSS .................................... 339 15.7.2. 创建自定义的站点模板 ............................. 340 15.7.3. 可重用的web站点皮肤 .............................. 345 15.7.4. 创建自定义的主题CSS .............................. 346 15.7.5. 在皮肤中自定义站点模板 ........................... 347 15.8. 提示与技巧 ............................................. 348 15.8.1. 给HEAD嵌入XHTML .................................. 348 15.8.2. 在你站点logo下添加链接 ........................... 349 15.8.3. 为你的站点添加导航链接 ........................... 349 15.8.4. 添加项目版本 ..................................... 350 15.8.5. 修改发布日期格式和位置 ........................... 351 15.8.6. 使用Doxia宏 ...................................... 352 16. 仓库管理器 ................................................... 354 16.1. 简介 ................................................... 354 16.1.1. Nexus历史 ........................................ 354 16.2. 安装Nexus .............................................. 355 16.2.1. 从Sonatype下载Nexus .............................. 355 16.2.2. 安装Nexus ........................................ 355 16.2.3. 运行Nexus ........................................ 355 16.2.4. 安装后检查单 ..................................... 357 16.2.5. 为Redhat/Fedora/CentOS设置启动脚本 ............... 358 16.2.6. 升级Nexus版本 .................................... 360 16.3. 使用Nexus .............................................. 361 16.3.1. 浏览仓库 ......................................... 362 16.3.2. 浏览组 ........................................... 364 16.3.3. 搜索构件 ......................................... 366 16.3.4. 浏览系统RSS源 .................................... 367 16.3.5. 浏览日志文件和配置 ............................... 369 16.3.6. 更改你的密码 ..................................... 370 16.4. 配置Maven使用Nexus ..................................... 371 16.4.1. 使用Nexus中央代理仓库 ............................ 371 Maven权威指南 ix 16.4.2. 使用Nexus作为快照仓库 ............................ 372 16.4.3. 为缺少的依赖添加仓库 ............................. 374 16.4.4. 添加一个新的仓库 ................................. 375 16.4.5. 添加一个仓库至一个组 ............................. 377 16.5. 配置Nexus .............................................. 379 16.5.. 定制服务器配置 .................................... 379 16.5.2. 管理仓库 ......................................... 381 16.5.3. 管理组 ........................................... 386 16.5.4. 管理路由 ......................................... 388 16.5.5. 网络配置 ......................................... 391 16.6. 维护仓库 ............................................... 391 16.7. 部署构件至Nexus ........................................ 392 16.7.1. 部署发布版 ....................................... 393 16.7.2. 部署快照版 ....................................... 394 16.7.3. 部署第三方构件 ................................... 395 17. 编写插件 ..................................................... 397 17.1. 简介 ................................................... 397 17.2. Maven编程 .............................................. 397 17.2.1. 什么是反转控制? ................................. 397 17.2.2. Plexus简介 ....................................... 398 17.2.3. 为什么使用Plexus? ................................ 399 17.2.4. 什么是插件? ..................................... 399 17.3. 插件描述符 ............................................. 400 17.3.1. 顶层插件描述符元素 ............................... 402 17.3.2. Mojo配置 ......................................... 402 17.3.3. 插件依赖 ......................................... 405 17.4. 编写自定义插件 ......................................... 405 17.4.1. 创建一个插件项目 ................................. 405 17.4.2. 一个简单的Java Mojo .............................. 406 17.4.3. 配置插件前缀 ..................................... 408 17.4.4. 插件中的日志 ..................................... 411 17.4.5. Mojo类注解 ....................................... 412 17.4.6. 当Mojo失败的时候 ................................. 414 17.5. Mojo参数 ............................................... 415 17.5.1. 为Mojo参数提供值 ................................. 415 17.5.2. 多值的Mojo参数 ................................... 417 17.5.3. 依赖于一个Plexus组件 ............................. 419 17.5.4. Mojo参数注解 ..................................... 419 17.6. 插件和Maven生命周期 .................................... 420 17.6.1. 执行平行的生命周期 ............................... 421 Maven权威指南 x 17.6.2. 创建自定义的生命周期 ............................. 421 17.6.3. 覆盖默认生命周期 ................................. 423 18. 使用可选语言编写插件 .......................................... 425 18.1. 使用Ant编写插件 ........................................ 425 18.2. 创建一个Ant插件 ........................................ 425 18.3. 使用JRuby编写插件 ...................................... 428 18.3.1. 创建一个JRuby插件 ................................ 429 18.3.2. Ruby Mojo实现 .................................... 431 18.3.3. Ruby Mojo中使用日志 .............................. 434 18.3.4. Raise一个MojoError ............................... 434 18.3.5. 在JRuby中引用Plexus组件 .......................... 435 18.4. 使用Groovy编写插件 ..................................... 436 18.4.1. 创建一个Groovy插件 ............................... 436 A. 附录: Settings细节 ................................................. 439 A.1. 简介 ........................................................ 439 A.2. Settings细节 ................................................ 439 A.2.1. 简单值 ................................................ 439 A.2.2. 服务器(Servers) ..................................... 441 A.2.3. 镜像(Mirrors) ....................................... 442 A.2.4. 代理(Proxies) ....................................... 443 A.2.5. Profiles .............................................. 444 A.2.6. 激活(Activation) .................................... 444 A.2.7. 属性(Properties) .................................... 446 A.2.8. 仓库(Repositories) .................................. 447 A.2.9. 插件仓库 .............................................. 449 A.2.10. 激活的Profile ........................................ 449 B. 附录: Sun规格说明可选实现 .......................................... 450 xi |
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论