maven简介

maven是什么?有什么用?

maven 解决的问题:

  •      - jar包的声明式依赖管理与管理
  •      - 自动构建、发布项目
  •      - 软件构建的生命周期: 清除--> 编译-->测试-->报告-->打包(jar\war)-->安装-->部署到远程
 maven可以通过一个命令实现自动构建软件项目

管理jar包:

我们在开发项目的时候,甚至是写一个小的java程序的时候,会用到各种各样的jiar包,有些jar包根本没有听过,就需要上网去查找,但是一定保证下载的jar包就是对的吗?在实际开发项目中,公司的很多人都在完成这个项目,同样一个类似的功能,需要用jar包,他用了这个版本,他用了那个版本,各个版本的jar可能只有一些微小的差别,也可能影响到整个项目的运行。还有就是项目在测试的时候,知道你用到了这个jar包,但是具体是哪个版本就不知道了,在测试中会遇到很多的问题。maven会帮我们构建一个仓库,这个仓库存的是什么呢?就是在项目中需要用到的jar包。

在我们安装maven的时候,需要配置Maven的仓库,在网上下载的压缩包解压之后,在根目录下的conf文件夹中有一个setting.xml配置文件,其中有一条注释告诉我们需要指定一个本地的仓库(根据网上的安装教程和配置,其实很简单,注意maven是java编写的,需要java环境的支持,电脑中必须安装jdk才可以使用)我们需要新建一个本地仓库,在配置文件中指定这个本地仓库即可。


每个开发人员的电脑都会有一个仓库,但是有很多的开发人员,每个开发人员都有一台电脑,怎么做到这些开发人员仓库中用到的jar包做到统一呢,我们在公司的服务器上创建一个仓库,Maven可以帮我们管理这个仓库,公司的开发人员发现需要jar包了,maven就会去公司的这个仓库中把需要的jar包下载到自己的仓库中,但是公司的这个仓库中也没有这个jar包的时候,就要用到中心仓库,这个中心仓库是面向全世界的,每个人都可以到这个中心仓库中去寻找所需要的jar包,放到自己的仓库中。简单点说,如果发现没有所需要的jar包,就会根据去下载,放到本地。

在构建一个maven项目的时候,我们没有手工的去下载任何jar文件,这一切都是因为maven中央仓库的存在,当maven在本地仓库找不到需要的 jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——maven中央仓库。在maven的根目录下的lib包中找到maven-model-builder-3.5.0.jar这个jar包,解压打开进入到\org\apache\maven\model中有一个pom-4.0.0.xml配置文件中,打开看到里面的中心仓库的配置。其实maven的中心仓库是:https://repo.maven.apache.org/maven2/


根据什么去中心仓库寻找所需要的jar包呢?这就要用到坐标的概念,我们在用maven的时候,在配置文件中需要说明jar包名字,版本号,这些信息组成了区别jar包的信息,maven就可以根据这些信息构建出一个坐标,到中心仓库中找到。我们在图书馆找书的时候,也是根据书的分类,一步一步找到。

 maven通过坐标的概念来唯一标识jar包或者war包, 坐标的组成: groupId + artifactId+ version
      - groupId:组id ,机构名,公司名:好比公司的id
      - artifactId:构建物id ,产品名或者产品的id
      - version :版本号
通过这些信息的组合可以找到唯一的一个jar包

规范代码结构:

maven还可以规范我们的代码结构,maven规定我们书写的java代码放在哪级,什么文件夹下,输出的class文件放在哪里,这样我们在使用Maven的时候,我们就必须遵守这些规范,否则maven是不会帮我们的,间接地规定了代码的存放结构。Maven还可以帮我们打包,发布项目。

- src
      ---main
              ---java
                   ---包和类
              ---resources
      ---test
             ---java
             ---resources
- target  : 该文件夹可有可无,是编译src后的输出文件的目录,没有则自动创建
- pom.xml : (project ojbect  model):项目对象模型 ,它是maven核心配置文件,我们需要的jar包及具体的版本都在这里配置

管理项目:

maven其实在项目的管理上提供了很大的方便,从编译,测试,打包,部署,清除上都可以用一个命令来实现。

      - mvn clean :清除
      - mvn compile :编译
      - mvn  package :打包
      - mvn clean  install : 安装到本地仓库
      - mvn deploy :部署 ,部署到私服 (局域网或者是外网)


posted @ 2017-11-10 21:29  In_new  阅读(156)  评论(0编辑  收藏  举报