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

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 将项目输出构件部署到远程仓库
       
时间: 2024-07-30 01:58:36

【maven详解-插件】maven 插件机制的相关文章

Maven详解之------maven版本管理

本文允许转载,但请标明出处:http://blog.csdn.net/wanghantong/article/38424065, 版权所有 现在所说的maven版本不同于SVN的版本控制哦!!! 之前我们说过Maven的版本分为快照和稳定版本,快照版本使用在开发的过程中,方便于团队内部交流学习.而所说的稳定版本,理想状态下是项目到了某个比较稳定的状态,这个稳定包含了源代码和构建都要稳定. 一.如何衡量项目的稳定状态呢? 1. 所有的自动化测试应当全部通过 2. 项目没有配置任何快照版本的依赖 3

maven详解之生命周期与插件(二)

插件配置 定义解释:插件目标 当我们了解了maven插件之后,我们发现如果为每一个功能编写一个独立的插件显然是不可取的,因为这些任务背后有很多可以复用的代码,因此,把这些功能聚集在一个插件里,每一个功能我们就称之为一个插件目标. 举个例子: maven-dependency-plugin有十多个目标,每个目标对应了一个功能 分析项目依赖:dependency:analyze 列出项目依赖树:dependency: tree 列出项目所有已解析的依赖:dependency:list POM中插件全

maven详解之生命周期与插件(一)

Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成. maven的每个构建步骤都可以绑定一个或多个插件行为,而且maven为大多数的构建步骤编写并绑定了默认插件. 三套生命周期: clean.default.site clean: 主要目的是清理项目 pre-clean: 执行一些清理前需要完成的工作 clean: 清理上一次构建生成的文件 post-cle

Maven详解之仓库------本地仓库、远程仓库

在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径, 解读Maven在仓库中的存储路径: 1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将  "."  转换成 "/" ; example: org.testng --->o

maven详解之坐标与依赖

看着简单而又复杂的pom.xml文件,看似熟悉,当自己编写的时候觉得简单,但是看人家项目的时候又觉得复杂的很,现在我们一起来分析这个pom文件. Maven的坐标为各种构件引入了秩序,任何一个构件都必须明确的定义自己的坐标,maven的坐标包括如下的元素: groupId: 定义当前Maven项目隶属的实际项目 artifactId: 该元素定义实际项目中的一个Maven项目或模块 version: 该元素定义Maven项目当前所处的版本 packaging: 该元素定义Maven项目的打包方式

Maven详解之聚合与继承

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构.分模块开发,来提高代码的清晰和重用.针对于这一特性,maven也给予了相应的配置. 情景分析一: 我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可

Maven详解 之 聚合与继承

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构.分模块开发,来提高代码的清晰和重用.针对于这一特性,maven也给予了相应的配置. 情景分析一: 我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可

详解 集成Maven Spring Mybatis项目打包生成Bat文件

在项目中有时候需要将Maven项目打包生成bat文件,单独运行.本文将详解利用maven-assembly-plugin插件实现bat文件打包. 1.首先看一下项目结构 2.配置pom.xml文件,在节点build中加入以下配置内容 <span style="font-family:KaiTi_GB2312;font-size:18px;"><resources> <resource> <directory>src/main/java&l

maven如何下载和安装, Maven详解

[项目管理和构建]--Maven下载.安装和配置(二) blog.csdn.net 2015年05月01日 14:22 在上篇博文[项目管理和构建]--Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效.Maven主要做的是两件事: 统一开发规范与工具 统一管理jar包 这两件事情他都做到了,而且还做了更多的事情.Maven还可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等.目前Apache下绝大多数项目都已经采用Maven进行管理.

Maven详解及其环境配置

Maven详解 一.前言     以前做过的项目中,没有真正的使用过Maven,只知道其名声很大,其作用是用来管理jar 包的.最近一段时间在项目过程中使用Maven,用Maven构建的web项目,其项目结构只停留在了解阶段,没有深入的使用与理解,刚好最近看了一篇关于Maven的详解:就开始深入学习一下Maven的具体应用. 二.Maven的作用 在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们