maven作用:
依赖管理
方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题,通过在maven项目的pom.xml文件中添加依赖使maven自动下载相应的jar包
pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!-- POM模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 当前项目坐标 -->
<groupId>com.itheima</groupId>
<artifactId>maven_project1</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 打包方式 -->
<packaging>jar</packaging>
</project>
统一项目结构
项目构建
maven提供了标准的、跨平台(Linux、Windows、MacOS) 的自动化项目构建方式
maven模型
项目对象模型:将自己的项目抽象成一个对象模型,有自己专属的坐标,可以被别的项目当成依赖在pom.xml中引入
仓库顺序:本地->远程->中央
maven依赖
依赖具有传递性(只用导入直接依赖)
projectA依赖了projectB。对于projectA 来说,projectB 就是直接依赖。而projectB依赖了projectC及其他jar包。 在projectA中也会将projectC的依赖传递下来。对于projectA 来说,projectC就是间接依赖。
排除依赖:主动断开依赖的资源(被排除的资源无需指定版本)
<dependency>
<groupId>com.itheima</groupId>
<artifactId>maven-projectB</artifactId>
<version>1.0-SNAPSHOT</version>
<!--排除依赖, 主动断开依赖的资源-->
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖范围:在项目中导入依赖的jar包后,默认情况下,可以在任何地方使用,如果希望限制依赖的使用范围,可以通过<scope>标签设置其作用范围。
maven生命周期
Maven对项目构建的生命周期划分为3套(相互独立):
clean:清理工作(删除当前项目target文件夹)。
default:核心工作。如:编译、测试、打包、安装、部署等。
site:生成报告、发布站点等(几乎用不到)。
注:
在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行