Maven

概述

Maven是一款管理和构建Java项目的工具。基于POM(项目对象模型)的概念,通过一小段描述来管理项目

Maven坐标,唯一标识和定位一个项目

groupId:组织

artifactId:模块名称

version:版本

仓库:用于存储资源,管理jar包

本地仓库:自己计算机上的一个目录

中央仓库:由Maven团队维护的全球唯一的仓库

远程仓库:一般由公司团队搭建的私有仓库

使用顺序:本地仓库>远程仓库>中央仓库

依赖管理

依赖:指当前项目运行所需的jar包

配置依赖(在IDEA中)

  1. 在pom.xml中编写标签
  2. 标签中使用引入坐标
  3. 定义坐标的groupId,artifactId,version
  4. 点击刷新按钮,引入最新加入的坐标
1
2
3
4
5
6
7
8
<dependencyies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
...
</dependencyies>

依赖传递

依赖具有传递性

  • 直接依赖:在当前项目中通过依赖配置建立的关系

  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

  • 排除依赖:主动断开依赖的资源,被排除的资源无需指定版本

    1
    2
    3
    4
    5
    6
    <exclusions>
    <exclusion>
    <groupId></groupId>
    <artifactId></artifactId>
    </exclusion>
    </exclusions>

依赖范围

scope值 主程序 测试程序 打包(运行) 范例
compile(默认) Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

可以通过下面的xml标签来设置依赖范围

1
<scope>...</scope>

生命周期

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。(运行后面的阶段,前面的阶段也会运行)

生命周期阶段(常见)

常见生命周期阶段
clean 移除上一次构建生成的文件
compile 编译项目源代码
test 使用合适的单元测试框架运行测试
package 将编译后的文件打包,如:jar、war等
install 安装项目到本地仓库