在上一篇文章中,我们介绍了maven的安装配置与使用maven创建了一个web项目,现在,我们就稍微了解下maven工程的一些基础知识:

1、maven项目标准的目录结构:

java 快速查询maven互相依赖_依赖管理

对项目进行细分:

java 快速查询maven互相依赖_jar_02

 

2、maven的常用命令:

maven常用的命令主要有:clear,compile,test,package,install,deploy。

(1)clean:清理:将项目根目录下的targer目录清理掉

java 快速查询maven互相依赖_java 快速查询maven互相依赖_03

(2)compile:编译:将项目中的.java文件编译为.class文件

java 快速查询maven互相依赖_maven_04

(3)test:单元测试:将项目根目录下src/test/java目录下的单元测试类都会执行,单元测试类名有要求:XxxTest.java

java 快速查询maven互相依赖_常用命令_05

(4)package:打包:将项目打包,打包到项目根目录下target目录:

web project ---war包

java project ---jar包

(5)install:安装:打包到本地仓库,解决本地仓库多个项目公用一个jar包

(6)maven项目的生命周期:

在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令,前面的操作会自动执行。

①CleanLifeCycle:清理生命周期:clean

②defaultLifeCycle:默认生命周期:compile、test、package、install、deploy

③siteLifeCycle:站点生命周期:site

 

3、依赖范围:

maven项目的核心配置文件是pom.xml,我们可以在这个文件中,添加需要依赖的Jar包,同时还可以在<scope>标签中配置jar的有效范围,即依赖范围,如下图:

java 快速查询maven互相依赖_依赖管理_06

添加依赖:默认依赖范围是compile

provided:运行时部署到tomcat后不再需要

如果将servlet-api.jar设置为compile,打包后项目包含servlet-api.jar,war包部署到tomcat跟tomcat中存在的servlet-api.jar包冲突,导致运行失败:

java 快速查询maven互相依赖_maven_07

解决:修改依赖的范围:

java 快速查询maven互相依赖_常用命令_08

 

4、依赖管理:

(1)传递依赖:A依赖B,B依赖C,B是A的直接依赖,C是A的传递依赖。

遵循原则:

--第一声明者优先原则:谁先定义的就用谁的传递依赖

--路径近者优先原则:直接依赖级别高于传递依赖

(2)排除依赖:

java 快速查询maven互相依赖_java 快速查询maven互相依赖_09

(3)版本锁定:(重点)

java 快速查询maven互相依赖_java 快速查询maven互相依赖_10

java 快速查询maven互相依赖_java 快速查询maven互相依赖_11

 

5、依赖传递的范围:

java 快速查询maven互相依赖_java 快速查询maven互相依赖_12