说明:本文介绍Maven的生命周期,以及在pom.xml文件中每个依赖(dependency标签内)scope标签的内容。
Maven生命周期
在IDEA项目中,右侧边栏,点Maven,可以看到以下生命周期。
其中,
-
clean:删除掉编译生成的字节码文件,打包生成的jar包;
-
validate:验证项目是否正确,是否缺少某些必要的配置;
-
compile:编译项目源码,根据源文件生成字节码文件;
-
test:单元测试,执行项目中所有的测试用例;
-
package:打包项目,把编译生成的字节码文件、其他资源文件打成一个jar包或者war包。包括编译、测试;
-
verify:检查打包生成的jar包是否正确,是否符合指令标准以及各种规则;
-
install:把项目生成的jar包或者war包安装到本地仓库;
-
site:生成项目站点文档,把项目的信息和文档生成一个静态的网站;
-
deploy:把项目生成的jar包或者war包上传到远程仓库,一般是公司搭建的私服里;
依赖的作用域
在pom文件中,单个依赖如下:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.11.2</version>
<scope>test</scope>
</dependency>
其中,
-
groupId:企业唯一标识,一般是公司域名反写;
-
artifactId:工程项目的唯一标识;
-
version:版本号;
-
scope:作用域,依赖的范围;
其中,依赖的scope标签可以有以下值:
-
compile:编译和运行时都需要,默认值,可省略不写;
-
provided:编译时需要,运行时不需要,如lombok、servlet API;
-
runtime:运行时需要,编译时不需要,如JDBC驱动;
-
test:只在测试时需要,不会被打包到最终的jar包中,如junit,只能在单元测试里使用,不能在正式代码里使用;
-
system:该依赖是本地文件系统中提供的,需配合systemPath标签使用,指定依赖位置;
-
import:导入其他pom文件的依赖,不会导入实际的依赖,只是用来管理依赖的版本号;
总结
本文介绍了Maven的生命周期和依赖作用域,scope标签的选项值