码迷,mamicode.com
首页 > 其他好文 > 详细

【maven详解-插件】maven 插件机制

时间:2015-04-28 20:19:15      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

Maven插件运行方式

Maven在运行命令时都会对应每个生命周期,每个生命周期在执行时都会看pom.xml文件中配置了哪些插件,然后运行它。

Maven 的生命周期与插件相互绑定,用以完成实际的构建任务。更具体而言,是生命周期的阶段与插件的目标相互绑定,以完成某个具体的构建任务。 具体的功能由插件(Plugin)实现。一个插件可以实现多个目标(Goal)

为了解耦插件的功能和工程阶段,实现高度的可配置性,maven规定插件只是实现目标的功能, 通过配置来决定在哪个阶段执行(Execution)哪些目标操作。 甚至可以把一个Goal绑定到多个Phase,以实现复用。

maven内置了一些默认的插件,并根据不同的工程packing类型在各个phase中默认绑定了一些goal。 下表中列出default生命周期中各阶段默认绑定的goal,其中goal按照管理使用plugin

Maven插件的一些基本设置

Packaging

 pom.xml中的<packaging>是该项目的打包方式,Maven预设的几种打包方式分别是:jar/war/ejb/ejb3/rar;

 打包方式会与Lifecycle做一个绑定,mvn会根据打包的类型来调用不同的插件来完成打包的工作,比如jar包就会调用maven-jar-plugin的jar任务来打包,war会调用war:war来完成打包

 几种默认的Lifecycle绑定(ejb/jar/rar/war):

 

概念说明
LifeCycle 生命周期,maven内置default,sie,clean三个生命周期
Phase 阶段,每个生命周期有不同的阶段
Plugin 插件,实现实际的构建功能
Goal 一个插件可以实现多个goal,goal具备具体的功能
Execution 通过配置,决定在某个Phase执行哪些Goal
Project maven管理的目标:软件工程,小的工程可以聚合成大工程
PackageType 为了便于管理工程,按照构建目标区分成不同的工程类型,如jar,war,ear等
Dependency 依赖,project之间存在依赖关系
DependencyScope maven对依赖定义了不同的作用范围
Management 可以配置一个工程如何管理依赖关系
Repository 仓库,存放包,分为本地库和远程库
Build 构建的动作。使用maven管理工程,主要是指定将project构建到某个phase

 

 

生命周期 生命周期阶段 插件目标 执行任务
clean pre-clean    
  clean maven-clean-plugin:clean 删除项目的输出目录。
  post-clean    
site pre-site    
  site maven-site-plugin:site  
  post-site    
  site-deploy maven-site-plugin:deploy  
default process-resources maven-resources-plugin:resources 复制主资源文件至主输出目录
  compile maven-compiler-plugin:compile 编译主代码至主输出目录
  process-test-resources maven-resources-plugin:testResources 复制测试资源文件至测试输出目
  test-compile maven-compiler-plugin:testCompile 编译测试代码至测试输出目录
  test maven-surefire-plugin:test 执行测试用例
  package maven-jar-plugin:jar(ejb:ejb jar:jar rar:rar war:war 创建项目jar包
  install maven-install-plugin:install 将项目输出构件安装到本地仓库
  deploy maven-deploy-plugin:deploy 将项目输出构件部署到远程仓库
       

【maven详解-插件】maven 插件机制

标签:

原文地址:http://www.cnblogs.com/yantz/p/4463573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!