Maven 入门(一) Maven使用

1.什么是Maven

若是没有Maven,你可能不得不经历下面的过程:spring

1 若是使用了spring,去spring的官网下载jar包;若是使用hibernate,去hibernate的官网下载Jar包;若是使用Log4j,去log4j的官网下载jar包.....缓存

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

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

4 执行构建时,须要使用ant写出不少重复的任务代码post

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

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

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

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

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

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包,浪费带宽了。

关于本地仓库和共享仓库的配置都在settings.xml中,这个文件位于conf中,若是没有则拷贝一份便可。

settings.xml的部分配置文件以下:

 <mirror>
                <id>mirrorId</id>
                 <mirrorOf>repositoryId</mirrorOf>
                 <name>SlaveName</name>
                 <url>http://search.maven.org</url>

        </mirror>

  <localRepository>D:/.m2/repository</localRepository>

3 Maven的生命周期与阶段

Maven中有三大生命周期,他们相互独立,分别是:

1 clean 清理

2 default 构建

3 site 建站

通常来讲,clean和default比较经常使用。

每一个生命周期又有不一样的阶段,阶段按顺序执行,而且能够指定执行结束的阶段。构建的时候,会依次从最上面的阶段执行到指定的那个阶段

好比,clean有3个阶段:

1 pre-clean 执行清理前要完成的工做
2 clean 清理上一次构建生成的文件
3 post-clean 执行清理后须要完成的工做

当咱们输入mvn clean的时候,执行的是pre-clean和clean两个阶段。

看名字大概就能理解,当执行mvn install的时候,实际会执行validate-->initialize-->...-->verify-->install等二十几个阶段。

为了操做方便,不一样的声明周期能够在一块儿执行,好比mvn clean install,会先执行clean的阶段,在执行install的阶段。

在IDE开发环境中,当咱们Run as的时候,就能够执行maven clean进行清理,或者执行maven install进行构建,也能够执行maven build同时执行clean和install两个任务。

 

基本上了解上面两个知识点,就足够平常工做使用了。固然Maven可不止这么一点点的东西,好比它还涉及到自定义构建任务、间接依赖的管理、插件的使用、私库的搭建等等,若是须要的话,读者能够参考《Maven实战》,这本书讲述的很全面了。

相关文章
相关标签/搜索