Maven简介
maven是一个软件项目管理工具,可以用来管理项目的依赖、编译、文档等信息。
Maven的运作方式
使用maven管理项目时,项目依赖的jar包将不再包含在项目内,而是集中放置在.m2目录下(你本地的Maven库)。Maven会自动根据dependency中的依赖配置,直接通过互联网在Maven中心库下载依赖包到.m2目录下。
所依赖的jar包的dependency不知道怎么写的话,可以去http://mvnrepository.com网站检索,也可以使用国内的私服,如阿里云的私服http://maven.aliyun.com/nexus
Maven的pom.xml
Maven是基于项目对象模型的概念运行的。所有Maven的项目都有一个pom.xml用来管理项目的依赖以及项目的编译等功能。
1. dependencies元素
,此元素包含多个项目依赖,每个依赖需要用
元素来配置。
2.dependency元素
内部通过groupId,artifactId以及version确定唯一的依赖。groupId是组织的唯一标识,artifactId是项目的唯一标识,version是项目的版本。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
3.变量定义
可定义变量在中使用。比如上例中的元素中的变量就是pom.xml开始的元素中所定义的。
<properties>
<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
</properties>
4.编译插件
Maven 提供了编译插件,可在编译插件中涉及java的编译级别,代码如下。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>EYTEST</warName>
</configuration>
</plugin>
</plugins>
</build>
Maven仓库
Maven仓库用来存放Maven管理的所有Jar包。当项目需要jar包的时候通过坐标去仓库寻找jar包。分为:本地仓库、私服公司的仓库)和中央仓库。
本地仓库:Maven本地的Jar包仓库。
私服:公司的仓库
中央仓库:Maven官方提供的远程仓库。
当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的私服或中央仓库下载所需Jar包。
传递依赖 与 排除依赖
传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和间接引用的Jar包都下载到本地。
排除依赖:如果不想引用间接引用的Jar包,那么可以在pom.xml中做exclusion配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除内置容器,排除内置容器导出成war包可以让外部容器运行spring-boot项目-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>