Maven生命周期
Contents
一、概述
本文将从约定配置、生命周期两个方面总结 Maven 这个 Java 包管理工具。
二、约定配置
目录 | 目的 |
---|---|
${basedir} | 存放 pom.xml 和所有的子目录 |
${basedir}/src/main/java | 项目的源代码 |
${basedir}/src/main/resources | 项目的资源,比如说property文件,springmvc.xml |
${basedir}/src/main/webapp/WEB-INF | web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面 |
${basedir}/target | 打包输出目录 |
${basedir}/target/classes | 编译输出目录 |
${basedir}/target/test-classes | 测试编译输出目录 |
~/.m2/repository | Maven默认的本地仓库目录位置 |
三、Maven 构建生命周期
3.1 生命周期
Maven 构建生命周期就是 Maven 将一个整体任务划分为一个个的阶段,类似于流程图,按顺序依次执行。也可以指定该任务执行到中间的某个阶段结束。
Maven的生命周期由一系列阶段(phase)构成。Maven 的内部有三个构建生命周期,分别是 clean, default, site。 生命周期的核心阶段如下所示:
3.2 构建阶段与插件目标
一个插件目标代表一个特定的任务(比构建阶段更为精细),这有助于项目的构建和管理。这些目标可能被绑定到多个阶段或者无绑定。不绑定到任何构建阶段的目标可以在构建生命周期之外通过直接调用执行。这些目标的执行顺序取决于调用目标和构建阶段的顺序。
例如,考虑下面的命令:
clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标
|
|
而在具体 pom.xml 插件中定义阶段和目标是在execution
中:
|
|
3.3 Maven 默认插件
已知 Maven 使用 plugin 来执行实际操作的,在默认情况下,Maven 会绑定以下几个插件来完成基本操作。
实际操作可以通过: mvn clean install
走一遍查看运行日志。
plugin | function | life cycle phase |
---|---|---|
maven-clean-plugin | 清理上一次执行创建的目标文件 | clean |
maven-resources-plugin | 处理源资源文件和测试资源文件 | resources,testResources |
maven-compiler-plugin | 编译源文件和测试源文件 | compile,testCompile |
maven-surefire-plugin | 执行测试文件 | test |
maven-jar-plugin | 创建 jar | jar |
maven-install-plugin | 安装 jar,将创建生成的 jar 拷贝到 .m2/repository 下面 | install |
maven-deploy-plugin | 发布 jar | deploy |
Author 拾光
LastMod 2022-06-13