Maven入门

一、什么是Maven,它解决了哪些问题

Maven简单说就是Java的项目管理工具,它主要做了两件事

  • 统一开发规范与工具
  • 统一管理jar包

二、原理

  • Java项目与项目,项目与包的依赖很复杂,使用Maven构建项目相当于一个包的管家,它分层次清晰的记录了每个jar包的位置和导入途径,那它是如何实现的呢,通过仓库的形式。它具体包含以下三种类型的仓库,即每一个仓库象征一个优先级。

1.本地仓库:Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下,一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了

2.第三方仓库(私服):第三方仓库,又称为内部中心仓库,也称为私服。私服:一般是由公司自己设立的,只为本公司内部共享使用。私服可以使用的是局域网,中央仓库必须使用外网。也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。注意:连接私服,需要单独配置。如果没有配置私服,默认不使用

3.中央仓库: Maven内置了远程公用仓库,这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主,工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

  • 总结:具体为以下流程

那么Maven是如何实现包管理的,又如何清晰的记录,每个仓库所处的位置呢,主要是通过pom.xml文件,里面记录了当前的信息

1、modelVersion:指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0

2、groupId:顾名思义,这个应该是公司名或是组织名。一般来说groupId是由三个部分组成,每个部分之间以"."分隔,第一部分是项目用途,比如用于商业的就是"com",用于非营利性组织的就是"org";第二部分是公司名,比如"tengxun"、"baidu"、"alibaba";第三部分是你的项目名

3、artifactId:可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式

4、version:版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。在Maven中很重要的一点是,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,这非常重要,我在使用和研究Maven的时候多次感受到了这点。

三、怎样用Maven构建一个项目

参考
https://www.cnblogs.com/whgk/p/7112560.html
https://www.cnblogs.com/hongwz/p/5456578.html

posted @ 2019-04-24 17:24  SutFutureCoder  阅读(163)  评论(0编辑  收藏  举报