首页 > 代码库 > Maven日常

Maven日常

一、什么是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、项目的知识管理:管理项目相关的其他内容,比如开发者信息,版本等等

 

二、Maven如何管理jar包?

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

如:常用的Junit的声明如下:

<dependency>

  <groupId>junit</groupId>

  <artifactId>junit</artifactId>

  <version>4.12</version>

  <scope>test</scope>

</dependency>

Maven下载jar包的过程:

技术分享

在Maven中会涉及到集中仓库:

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

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

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

4共享仓库,一些书中提到的中央仓库或者一些现场用的镜像网站都属于这种,国内比较著名的oschina以及163都是hi不错的maven仓库

 

 

 

三、Maven的生命周期与阶段

Maven日常