一个完整的项目构建通常包括清理,编译,测试,打包,继承部署等步骤,而maven是生命周期的抽象,具体的任务都交给了插件来完成。
1.1 pre-clean执行一次清理前需要完成的工作
1.2 clean清理上一次构建生成的文件
1.3 执行一次清理后需要完成的工作
是生命周期中最核心的部分包含了构建项目的所有步骤。编译,测试,打包,部署(只介绍核心内容)
2.1 source
2.2 resource
2.3complie
2.4test
2.5test-complie
2.6 package
2.7install
2.8 deploy
site是建立和发布项目站点。本文不重点介绍
用命令行执行maven任务主要还是调用maven的生命周期阶段。各个生命周期是相互独立的,而每个生命周期的阶段是有前后的依赖关系的
mvn clean: 该命令会调用clean生命周期的 clean阶段。执行阶段为clean生命周期的pre-clean和clean阶段
mvn clean install:该命令调用clean生命周期的clean阶段和default生命周期的install阶段。实际执行的阶段为clean生命周期的 pre-clean,clean以及
defualt生命周期从validate到install的所有阶段。结合了两个生命周期。
生命周期与插件的关系。我们先来看看maven插件存放在哪里
maven插件定位在
%本地仓库%\org\apache\maven\plugins,可以看到一些下载好的插件:
详细查看请查看Maven官网
一个插件通常可以完成多个任务,每一个任务就叫做插件目标。对于插件本身,为了能够复用代码,往往可以完成多个任务。
如:
Maven-dependency-plugin 有十多个目标 dependency:analyze
当我们执行mvn install命令时,调用的该插件和执行的目标如下:
maven的生命周期与插件是相互绑定的,用以完成构建任务
这一过程是在生命周期的具体阶段(phase)绑定插件目标(goal)来完成的。如:将maven-compiler-plugin插件的compile目标绑定到default
生命周期的compile阶段,完成项目的源代码编译:
如:我们编译源代码
<plugin> <!-- 编译源码插件 --> <!-- 用来编译位于src/main/java/目录下的主源码 --> <groupId>org.apache.maven.plugins</groupId> <!-- 项目或者组织的唯一标志 --> <artifactId>maven-compiler-plugin</artifactId> <!-- 项目的通用名称 --> <version>${maven-compiler-plugin.version}</version> <!-- 使用maven-compiler-plugin 指定JDK版本和编码 --> <configuration> <!-- 通常用于私有不开源的plugin --> <source>${maven.compile.source}</source> <!-- 编译源代码 jdk版本编译 --> <target>${maven.compile.target}</target> <encoding>${project.build.sourceEncoding}</encoding> <!-- 用于maven中的文件拷贝 的 编码格式 --> </configuration> </plugin>
Maven的生命周期在项目中贯穿始终,无论是在命令行还是在构建项目时,都脱离不了生命周期的概念,构建与生命周期的关系又是其中的重点
,主要还是要理解生命周期与插件之间的绑定石通过 phase与goals。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/han_yankun2009/article/details/47085163