Maven的生命周期,阶段,插件,目标的关系
来源:互联网 发布:软件如何代理加盟 编辑:程序博客网 时间:2024/04/27 20:22
生命周期(Lifecycle)
Maven的生命周期分为互相独立的三部分,分别是clean,default,site。
而每一个周期又包括若干阶段。
1. clean:用于清理项目,分为3个阶段2. default:用于构建项目,分为23个阶段3. site:用于建立项目站点,分为4个阶段
阶段(Phase)
周期所包含的阶段是有前后顺序的,并且后面的阶段依赖于前面的阶段。
阶段的使用
在执行maven命令时,mvn命令之后使用的参数便是maven的各个阶段。
例如:
mvn compile
此命令使用了deault周期的compile阶段。
例如:
mvn clean deploy
此命令使用了clean周期的clean阶段和default周期的deploy阶段。
阶段的顺序
在调用maven的阶段时,会顺序执行本周期当前阶段之前的所有阶段,直至当前阶段。
例如:clean周期共有3个阶段,按顺序分别如下:
1. pre-clean2. clean3. post-clean
当执行命令
mvn clean
执行了clean同期的pre-clean和clean,共2个阶段。
当执行命令
mvn compile
compile阶段属于default周期,而default周期有23个阶段,compile排序第7位,所以实际执行了default周期的第1阶段validate至第7阶段compile,共7个阶段。包括:
1. validate2. initialize3. generate-sources4. process-sources5. generate-resources6. process-resources7. compile
那么各个阶段到底是如何执行的呢?Maven内部是通过插件中的目标来实现。
插件(plugin)和目标(goal)
Maven的操作是基于不同的插件的不同目标来实现的
一个插件中包括若干目标,而每个目标会执行一个特定的任务task。
例如:
mvn clean
在上面这个命令中,使用的参数是clean阶段,而实际执行的是maven-clean-plugin插件的clean目标。
因为clean周期的clean阶段是默认绑定到clean插件的clean目标绑定的。(不同的clean)
可在maven-core-*.jar包的META-INF/plexus/components.xml中找到此绑定关系。
<component> <role>org.apache.maven.lifecycle.Lifecycle</role> <implementation>org.apache.maven.lifecycle.Lifecycle</implementation> <role-hint>clean</role-hint> <configuration> <id>clean</id> <phases> <phase>pre-clean</phase> <phase>clean</phase> <phase>post-clean</phase> </phases> <default-phases> <clean> org.apache.maven.plugins:maven-clean-plugin:2.5:clean </clean> </default-phases> </configuration></component>
其它详细的绑定关系可查看META-INF/plexus目录下的xml文件。
常用的插件
1. maven-clean-plugin2. maven-resouces-plugin3. maven-compiler-plugin4. maven-deploy-plugin5. maven-surefire-plugin6. maven-install-plugin
查看更多插件
直接运行插件
可使用“插件名:目标名”的参数形式直接运行某插件的某目标。
例如:
mvn dependency:copy-dependencies
以上命令执行了dependency插件的copy-dependencies目标。
阶段(phase)和插件目标(goal)可以同时使用
例如:
mvn clean dependency:copy-dependencies package
以上命令执行了clean周期的pre-clean和clean阶段,dependency插件的copy-dependencies目标,default周期package阶段及package之前的所有阶段。
生命周期与阶段的关系表及部分阶段默认绑定的插件目标
原文看这里
- Maven的生命周期,阶段,插件,目标的关系
- 生命周期阶段与插件目标的绑定关系
- maven插件与目标和生命周期阶段
- Maven的生命周期、生命周期阶段、打包类型、目标
- Maven的生命周期阶段
- Maven的生命周期阶段
- Maven的生命周期阶段
- Maven进价:Maven的生命周期阶段
- Maven进价:Maven的生命周期阶段
- Maven进价:Maven的生命周期阶段
- Maven进价:Maven的生命周期阶段
- Maven的生命周期和插件
- maven的生命周期和插件
- Maven的生命周期和插件
- Maven的生命周期和插件
- Maven的生命周期和插件
- Maven的生命周期和插件
- Maven的生命周期和插件
- Laravel 服务容器启动流程(就是做个摘记,我也还很迷糊中)
- 玩转Fragment。。。
- 自动减面
- SpringMVC+Freemarker生成静态页面
- 最详细的 Toolbar 开发实践总结
- Maven的生命周期,阶段,插件,目标的关系
- JavaScript框架&jQuey框架
- MySQL数据库SQL开发规范
- eclipse android jni 开发,so库编译
- 通过binder实现系统和app匿名内存共享
- Java数据库-JDBC基础知识(对女屌丝操作实例)
- STL常用函数复习之————string
- GitHub
- SpringMVC基础——一个简单的例子