Maven使用

来源:互联网 发布:淘师湾信息技术网络平 编辑:程序博客网 时间:2024/06/10 22:00


一、Maven的那点事    http://www.cnblogs.com/xing901022/p/4170248.html


二、Maven的日常  http://www.cnblogs.com/xing901022/p/5024357.html


以前在日常工作中,使用Maven只是机械的执行Maven clean、Maven install,对其中的原理与过程并无了解,近期阅读了《Maven实战》,对Maven有了更深入的理解。

本篇就针对读书后的理解,对Maven的日常使用相关的知识进行总结与归纳。

如果想要了解更多内容参考:《Maven实战》

1 什么是Maven?

如果没有Maven,你可能不得不经历下面的过程:

1 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网下载jar包.....

2 当某些jar包有依赖的时候,还要去下载对应的依赖jar包

3 当jar包依赖有冲突时,不得不一个一个的排查

4 执行构建时,需要使用ant写出很多重复的任务代码

5 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建

6 当进行测试时,需要一个一个的运行....检查

有了Maven,它提供了三种功能:

1 依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。

2 项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验、编译、测试、打包、部署、发布...

3 项目的知识管理:管理项目相关的其他内容,比如开发者信息,版本等等

2 Maven如何管理jar包

关于jar包的坐标,有过使用经验的都应该有所了解,maven是通过groupId,artifactId,以及version确定一个唯一的jar包。

这部分的内容可以参考前一篇:构建过程

例如,最常使用的Junit的声明就是如下:

<dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>4.12</version>  <scope>test</scope> 这是声明的范围,不同的生命周期所要求的范围是不一样的,详情参考《Maven实战》</dependency>

首先先来说说Maven下载jar包的过程:

在Maven中会涉及到几种仓库:

1 工作空间,即我们的项目工程,这里面可能会放着pom.xml文件,这个pom.xml就是maven的配置文件

2 本地仓库,本地仓库用于存放jar包,其实Jar包并不是直接放入工作空间的,它是存放在本地仓库,然后在执行发布打包的时候,添加依赖路径

3 私库:私库是使用者自己搭建的maven仓库,用于缓解频繁从外网下载jar包资源的压力。而且使用私库作为缓存层,也相对安全一些。

4 共享仓库:书中所说的中央仓库或者一些常用的镜像网站都属于这种,国内比较著名的oschina以及163都是不错的maven仓库。

 

当我们在pom中声明了依赖关系后,参考上面的图:

1 Maven在执行相关的任务时,会先去本地仓库查看是否有该资源,如果有的话,判断版本是否正确,如果一切都没问题则直接使用;否则,执行下一步

2 Maven会去配置的共享仓库中查找,如果找到就拷贝到本地仓库中;找不到则会给出相关的提示

3 Maven在本地如果搭建了私库,则会去私库中查找,找到就拷贝到本地仓库;找不到就会去共享仓库中查找,然后放入私库和本地库。有了私库,局域网内的开发者可以共享依赖,就不用每个人都去外网下载jar包,浪费带宽了。


0 0
原创粉丝点击