Maven是项目管理工具,它的主要作用是进行项目构建,提供了标准的,跨平台的自动化项目构建方式,并进行以来管理,即对jar进行统一管理,避免资源版本的冲突。最主要的是maven统一了项目开发结构,对于IDEA和eclipse等不同的集成开发环境都可以使用maven进行统一项目结构。Maven将项目开发和管理过程抽象成一个对象模型(POM)。

maven官网地址:Maven – Welcome to Apache Maven

maven下载地址:Maven – Download Apache Maven

目录

1、Maven下载安装与配置

2、Maven的基本概念

3、第一个Maven项目(IEDA生成)

4、依赖管理


1、Maven下载安装与配置

直接去官网下载即可,有window环境下的版本和linux环境下的版本,直接下载解压就可以了,绿色软件,解压即安装。解压后我们可以看到如下目录,分别为bin文件:核心运行文件,boot文件:类加载文件,conf文件:核心配置文件,lib:相关jar包文件,还有证书之类的。

maven项目中手动提交事物的工具类_eclipse

我们需要对Maven的环境变量进行配置,需要进行如下配置:

maven项目中手动提交事物的工具类_maven项目中手动提交事物的工具类_02

 java-home的配置和maven配置一样的,在安装jdk已经进行了java-home配置,这里是maven-home的配置,如下:

maven项目中手动提交事物的工具类_maven项目中手动提交事物的工具类_03

maven项目中手动提交事物的工具类_java_04

 配置完成后,在命令窗口输入mvn,出现如下窗口即表示配置成功。

maven项目中手动提交事物的工具类_java_05

2、Maven的基本概念

1)仓库

仓库用于存放jar包,仓库分为本地的和远程的,远程的又分为中央仓库和私服,私服的作用是存放不公开的资源,对内部开放,不共享。

maven项目中手动提交事物的工具类_intellij-idea_06

2) 坐标

Maven坐标用于描述仓库中资源的位置,主要包含组织号,项目号,版本号三部分。

maven项目中手动提交事物的工具类_maven项目中手动提交事物的工具类_07

3)仓库配置

本地仓库的配置:

在maven的文件夹的conf文件夹内的setting.xml中配置路径, 如下所示:我设置的D盘下的路径为本地仓库位置 ,<localRepository>D:\maven\repository</localRepository>

远程仓库的配置:阿里镜像,在setting.xml中配置如下所示:

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

3、第一个Maven项目(IEDA生成)

在IEDA创建一个empty project,然后配置maven如下,主要是换成自己配置的maven版本。不配置使用默认的也可以。

maven项目中手动提交事物的工具类_java_08

当然也需要设置一下项目的sdk,如下:

maven项目中手动提交事物的工具类_maven项目中手动提交事物的工具类_09

 接下来是创建maven项目,第一次使用IDEA生成,但不使用模板:如下:

打开项目结构,新建module,然后选择maven如下:

maven项目中手动提交事物的工具类_maven_10

起名,就是设置坐标。如下:

maven项目中手动提交事物的工具类_maven_11

 然后指定各文件夹的意义:就是将原来灰色的文件夹进行mark

maven项目中手动提交事物的工具类_eclipse_12

 创建maven项目如下:

maven项目中手动提交事物的工具类_java_13

 接下来是再创建一个java的maven项目,这一次使用IDEA中的模板生成,如下:

 打开项目结构,新建module,然后选择maven并选择如下的模板:

maven项目中手动提交事物的工具类_intellij-idea_14

 同样进行标记即可,如下:

maven项目中手动提交事物的工具类_maven_15

下面使用IDEA中的模板创建一个web项目,选择web-app的那个,如下:

maven项目中手动提交事物的工具类_intellij-idea_16

对于缺少的文件夹需要自己添加上,然后还是要标记一个各个文件夹的内容信息。

maven项目中手动提交事物的工具类_java_17

 可以在pom.xml文件中配置tomcat插件,如下:

<build>
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.1</version>
        </plugin>
      </plugins>
</build>

然后双击tomcat7下的tomcat:run启动服务器,具体如下:

maven项目中手动提交事物的工具类_intellij-idea_18

浏览器打开如下,表示启动服务器成功。

maven项目中手动提交事物的工具类_intellij-idea_19

4、依赖管理

依赖分为直接依赖和间接依赖,直接依赖就是在当前项目中通过依赖配置建立关系,间接依赖是从当前项目依赖其它项目的资源。

maven项目中手动提交事物的工具类_java_20

 对于依赖传递可能出现的冲突问题,首先是路径优先,即1度>2度,然后是声明优先,同级的依赖,配置在前的优先。

maven项目中手动提交事物的工具类_maven项目中手动提交事物的工具类_21

 使用可选依赖可以隐藏自己的依赖,不让其它项目看到。

maven项目中手动提交事物的工具类_eclipse_22

 对于不需要的依赖,使用排除依赖进行排除,即不使用。

maven项目中手动提交事物的工具类_intellij-idea_23

 依赖范围可以通过scope标签进行设定,常用的依赖范围有四个,complie,test,provided,runtime

maven项目中手动提交事物的工具类_java_24

另外,依赖的范围是有传递性的,如下表所示: