读《Maven实战》之后的个人学习总结

         2012年的8月,公司java项目组打算把以前的项目移植到maven环境下开发,最开始移植研究了一个星期,还是不能理解maven的思想和用法。后来在京东上买了这本书。

作者徐晓斌,是个maven大家。在这里我膜拜一下,谢谢你的书,让我完成了项目的移植,并将maven推广到项目组。让其他的同事也感受到了maven的魅力和轻便。这篇文章结合书和我的学习过程,说一下我对maven的感受。

   前三章都是讲基本介绍和基本使用,在网上也能搜到。就不说了。第四章有个背景案例,为了本书其他地方的举例使用提供场景。


  第五章的坐标和依赖很重要。介绍了maven世界的精髓。在maven里,pom主要管理jar依赖关系和插件的配置使用的。管理jar依赖,主要是通过jar的唯一坐标确定的。这个唯一坐标由三部分组成,groupid、artifactId、version。对于其他配置参数,简单说一下吧

type:依赖类型,对应项目坐标定义的packing,大部分情况下默认为jar.

scope:依赖范围,maven的项目编译运行也需要一套classpath,依赖范围是用来控制编译classpath、测试classpath、运行classpath的关系。主要有一下几个参数

complie-->对于测试、编译、运行都有效。例spring-core

test--->对于测试有效。例junit

provided-->已经提供的依赖,例如 servlet-api。

runtime-->运行时依赖,例如jdbc驱动。

system-->系统依赖范围,与provided范围一样,可以显示的指定本地jar

说完上面,说说传递依赖。这个也是比较有意思的概念,其原理也符合我们日常的思维逻辑。这里也涉及到一个名词传递性依赖范围。这个词用来描述第一直接依赖和第二直接依赖的依赖范围。例如A依赖B,B依赖C。A对B是第一依赖,B对C是第二依赖。A是C传递依赖,传递依赖范围根据A和C的依赖范围复合而成,这里追求的是以范围最低的为依赖范围的参照标准。

最后这章还讲了归类依赖,就是配置一些公共属性,方便依赖版本的升级和统一配置。


第六章,讲maven仓库,仓库分为本地仓库和远程仓库。远程仓库又分为私服和代理仓库以及中心仓库,代理仓库就是其他公共仓库,私服就是自己在局域网内架的仓库,中心仓库是最大的maven仓库。maven的仓库主要是为pom里的jar提供查询路径,一般的查询逻辑是 先找本地仓库,本地没有找私服仓库,私服没有就去中心仓库。如果中心仓库也没有,就需要自己上传了。


第七章 讲maven生命周期,由于偏重理论,我没有细致看。


第八章 聚合与集成,这章对我的学习有很大帮助。怎样在maven中采用模块化开发?这个问题maven用聚合的解决策略回答,项目模块之间的jar依赖关系怎样集中配置而不需要每个模块都配置一遍?maven用集成来回答。这两点都很重要,使用的人都知道。呵呵。


第九章,讲nexus的使用,没有什么难度。

第十章 maven进行测试,第十一章 hudson持续集成 我都已经做了showcases,感觉挺好用的。实际上也没有什么难度。

后面的使用maven构建web应用、版本管理等等也都没有看。都是对插件使用的简单教程,最后有一个制作maven插件,因为平时的技术重心没有放在这里,所以也没有尝试。

不管怎样,我觉得阅读这本书对我收获很多,学习的过程中也经历了各种困难,最多的感触是,事情用心做,一直做,一定可以做到。





你可能感兴趣的:(读书总结)