Maven是一个项目管理工具 
做了两件事: 
1.统一开发规范与工具 
2.统一管理jar包 
 
使用Maven构建的普通Java项目,对源代码,单元测试码,资源乃至后续需要的文件都有专门的目录规划, 
最后有一个pom.xml, 这是Maven的核心配置文件, pom称为Project Object Model(项目对象模型), 
它用于描述整个Maven项目,所以也称为Maven描述文件. 
 
打开pom.xml,最基础的是这样的: 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
      
  <modelVersion>4.0.0</modelVersion> 
  <groupId>com.xrq.withmaven</groupId> 
  <artifactId>withmaven</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <build/> 
</project> 
 |  
  
这个配置文件是Maven的核心, 
  
1.modelVersion: 
指定了当前Maven模型的版本号,对于Maven2和Maven3来说,他只能是4.0.0. 
2.groupId: 
公司名或是组织名,有三部分组成,每个部分之间以","分隔,第一部分是项目用途,比如"com 
,第二部分公司名"baidu",第三部分就是项目名. 
3.artifactid: 
是Maven的构建项目名,项目中有子项目,就可以是"项目名-子项目名"的命名方式. 
4.version: 
版本号, grouId. artifactid,version 三个元素生成了一个Maven项目的基本坐标. 
  
1.packing: 
项目打包的类型,可以使jar. war rar pom ,默认是jar. 
2.dependencies和dependency: 
前者包含后者. Maven的一个重要作用就是同意管理jar包,为了一个项目可以build和运行.项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency. 
 
在这里,就有一个本地仓库和远程仓库的概念,官方下载的本地仓库配置.在"%MAVEN_HOME%\conf\settings.xml"里面. 
本地仓库和远程仓库是这样的,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用. 
 
例子:项目中用到了MyBatis,那么可以配置成 
1 
2 
3 
4 
5 
6 
7 
 | <dependencies> 
    <dependency> 
        <groupId>org.mybatis</groupId> 
        <artifactId>mybatis</artifactId> 
        <version>3.2.5</version> 
    </dependency> 
</dependencies> 
 |  
  
 
3.build 
build表示与构建相关的配置,比如build下有finalName,表示的就是最终构建之后的名称, 
  
Maven的目录结构: 
*main目录下是项目的主要代码,test目录下存放测试相关的代码. 
*编译输出后的代码会放在target目录下. 
*src/main/java下存放java代码,src/main/resources下存放配置文件. 
*这里没有webapp,Web项目会有webapp目录,webapp下存放Web应用相关代码, 
*pom.xml是Maven项目的配置文件. 
 
二:maven常用命令 
1.mvn compile        编译 
2.mvn test        编译并测试 
3.mvn clean        清空生成的文件 
4.mvn site        生成项目相关信息的网站 
 
  
三.Maven环境配置: 
1.和JDK的环境变量配置类似 
 
2.设置本地仓库地址和私服仓库地址,即setting 
![]()  
setting和本地仓库默认的地址是C:\Users\Administrator\m2 
![]()  
配置setting中内容: 
![]()  
 
![]()  
 
![]()  
(一般情况下,setting中的参数值可以向项目经理拿) 
  
二.开发工具与maven的集成 
1.idea与maven的集成:idea自身集成maven插件 
![]()  
 
 
 |   
        
 
    
    
    
     
 
 |