1.什么是maven
Maven(POM project object model)是专门用于构建和管理java相关项目的工具。
【自己的体会:maven能够结局jar包依赖的问题,假设开发需要用到Mysql,需要先到百度去搜素哪些jar包是必须的,然后到官网去下一堆jar包,再放到项目中。很麻烦。使用maven后,在pom里把依赖一配置,说明要用mysql的哪个版本,哪个厂家出的,就ok了。在有了maven后,你只需要动嘴说一下,maven插件就会到仓库中去拿,至于其他的事情不需要操心。】
2.Maven的主要用处
使用Maven管理的java项目都有相同的项目结构
一.有一个pom.xml用于维护当前项目都用了哪些jar包。
二.所有的java代码都放在src/main/java下面。
三.所有的测试代码都放在src/test/java下面
统一维护jar包
比如有三个java项目,这些项目都不是maven风格。那么这三个项目,就会各自维护一套jar包。而其中有些jar包是相同的。
而maven风格的项目,首先把所有的jar包都放在“仓库”里,然后哪个项目需要用到这个jar包,只需要给出jar包的名称和版本号就行了,这样jar包就实现了共享。
不同IDE带来的困扰
IDE确实能帮助我们简化项目从创建、编译、测试、打包、部署的全过程。但是有一个非常严重的问题,比如teamA习惯使用intellij idea开发,teamB习惯使用eclipse开发。当一个项目由A转交给B后,首先idea的项目不能直接在eclipse中使用,这样的话要么B学习idea要么将idea项目转成eclipse格式。有了Maven就可以解决这个问题。
Eclipse和Intellij idea都有maven插件,支持使用maven构建项目。如果团队使用Maven构建项目,那么不论是否有IDE、或者不论IDE是什么,都不会出现因为换IDE导致的项目结构变化的问题。
3.Maven的使用
根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包。
pom.xml获取junit的jar包的编写。
<dependency> <!--通过groupId、artifactId、version三个属性来定位一个jar包--> <groupId>junit</groupId> <!--groupId:一般为包名,也就是域名的反写--> <artifactId>junit</artifactId> <!--artifactId:项目名--> <version>3.8.1</version> <!--所需要jar包的版本--> <scope>test</scope> <!--此局的意思是该jar包只在测试时使用--> </dependency> *为什么通过groupId、artifactId、version三个属性就能定位一个jar包呢?*假如上面的pom文件属于A项目,那么A项目肯定是一个maven项目,通过上面这三个属性就能找到junit对应版本的jar包,那么junit项目肯定也是一个maven项目,junit的maven项目中的pom文件就会有三个标识符,如下代码所示,然后别的maven项目救恩那个通过这三个属性来找到junit项目的jar包了。所以,在每个创建的maven项目时都会要求写上这三个属性的值。 <!--会有这三个属性来表示自己,目的就是为了让别人能通过这三个属性找到自己--> <groupId>junit</groupId> <!--给自己一个唯一的标识--> <artifactId>junit</artifactId> <!--自己项目的名称--> <version>3.8.1</version> <!--版本号--> <packaging>jar</packaging> <!--打包后为jar(/jar(java项目)/war(web项目)/pom(maven项目))包-->
4.仓库的概念
通过pom中的配置,就能够获取到想要的jar包,但是这些jar包在哪里呢》我们从哪里获取到的这些jar包呢?就是仓库。
仓库分为:本地仓库、第三方仓库(私服)、中央仓库
本地仓库:
Maven会将工程中依赖的构件(jar包)从远程下载到本机的一个目录下管理,每个i带闹闹默认的仓库是在C:Usersxx姓名.m2repository下。
一般我们会修改本地仓库位置,自己创建一个文件夹,再从网上下载一个又有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就可以了。
修改本地仓库位置在:
在代码中找到:
完成!
第三方仓库
第三方仓库,又称为内部中心仓库,也称为私服。
私服:一般是由公司自己设立,只为本公司内部共享使用。它既可以作为公司内部构建协作的存档,也可以作为公司类库镜像缓存,减少在外部访问和下载的频率。
中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2
这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构建,目前以java为主。
总结:获取jar包的过程
本地仓库(若没有所需的jar包,且配置了私服)→私服(若没有所需)→互联网(中央仓库) 97046533