一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。
什么是Maven
Maven比较正式的说法是:Maven 是一个项目管理工具,可以理解为一个依赖管理系统,也可以用来定义在生命周期阶段中插件目标的逻辑。
Maven 中文释义是:专家、内行。
Maven 能做什么
- 开发中项目需要引到用各种 jar 包,特别是项目随着时间而庞大,引用到的jar包越来越多,几十甚至上百个,在没有maven的时候,我们需要每个jar包都下载下来,然后挨个加入到项目依赖的lib中。并且过程中会不断出现依赖冲突的问题。
- java文件需要编译成class文件,加载到jvm中运行执行,而变成这一步可以在开发工具中完成,也可以由maven代劳
- maven可以很方便的完成单元测试的代码,然后一个个运行来检验代码质量
- 最后项目代码需要打包,其中包含了各种配置文件、各种资源文件 例如js、img等,maven可以帮助我们很方便的构建工程,管理jar包。
pom
maven主要通过项目中的 pom.xml 文件配置要引入的 jar 包,通过坐标到仓库中加载jar包到本地,再将项目与本地的jar文件关联。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
maven生命周期
maven的生命周期包括:
- clean 生命周期
- default 生命周期
- site 生命周期
其中clean生命周期又包含了三个阶段:
- pre-clean:执行清理前需要完成的工作。
- clean:清理上一次构建过程中生成的文件,比如 class 文件等。
- post-clean:执行清理后需要完成的工作。
default 生命周期包含的核心部分:
- generate-resources:产生主代码中的资源在 classpath 中的包
- process-resources:将资源文件复制到 classpath 的对应包中
- compile:编译项目中的源代码
- generate-test-resources:产生测试中资源在 classpath 中的包
- process-test-resources:将测试资源复制到 classpath 中
- test-compile:编译测试代码
- test:运行测试case
- install:打包安装项目到本地依赖仓库中,以便供其他本地项目使用
- deploy:运行集成和发布环境,将最后产生的包文件发布到远程仓库中,可供其他项目引入使用。
site 生命周期主要是建立和发布项目站点。其生命周期主要包括:
- pre-site:执行生成站点之前的准备工作。
- site:生成站点文档。
- post-site:执行生成站之点后需要收尾的工作。
- site-deploy:将生成的站点发布到服务器上。