Maven-06: 插件的内置绑定

Maven的生命周期与插件相互绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标相互绑定,以完成某个具体的构建任务。例如项目编译这一任务,它对应default生命周期的compile这一阶段,而maven-compiler-plugin这一插件的compile目标能够完成该任务。因此将他们绑定,就能实现项目编译的目的。

为了能让用户几乎不用任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了很多插件的目标,当用户通过命令行调用生命周期阶段的时候,对应的插件目标就会执行相应的任务。

clean生命周期仅有pre-clean,clean和post-clean三个阶段,其中的clean与maven-clean-plugin:clean绑定。maven-clean-plugin仅有clean这一个目标,其作用就是删除项目的输出目录。

clean生命周期阶段与插件目标的绑定关系如下图:

site生命周期有pre-site,site,post-site和site-deploy四个阶段,其中,site和maven-site-plugin:site相互绑定,site-deploy和maven-site-plugin:deploy相互绑定。maven-site-plugin有很多目标,其中,site目标用来生成项目站点,deploy目标用来将项目站点部署到远程服务器上。

site生命周期阶段与插件目标的绑定关系如下图:

相对于clean和site生命周期来说,default生命周期与插件目标的绑定关系就显得复杂一些。这是因为对于任何项目来说,例如jar项目和war项目,它们的项目清理和站点生成任务是一样的,不过构建过程会有区别。例如jar项目需要打成jar包,而war项目需要打成war包。

因为项目的打包类型会影响构建的具体过程,因此,default生命周期的阶段与插件目标的绑定关系由项目打包类型所决定,打包类型是通过POM中的packaging元素定义的。最常见,最重要的打包类型是jar,它也是默认的打包类型。

基于该打包类型的项目,其default生命周期的内置插件绑定关系及具体任务如下图:

注意,上表只列出了拥有插件绑定关系的阶段,default生命周期还有很多其他阶段,默认它们没有绑定任何插件,因此也没有任何实际行为。

除了默认的打包类型jar之外,常见的打包类型还有war,pom,maven-plugin和ear等。它们的default生命周期与插件目标的绑定关系可参阅Maven官方文档。

时间: 2024-11-05 20:45:58

Maven-06: 插件的内置绑定的相关文章

【06】Python 内置函数、redis、yagmail、nnlog、导入模块的实质

1 内置函数 1.1 map()和filter() 1 def bl(i): 2 return str(i).zfill(2) 3 l='12333' 4 # map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 5 print(type(map(bl,l))) 6 res = list(map(bl,l)) #,结果放到了一个生成器中,需要强制转换成list.set 7 print(res) #运行结果 <class '

WCF 内置绑定在不同的传输安全模式下的信道层

basicHttpBinding Transport安全模式信道层 Message安全模式信道层 TransportWithMessageCredential安全模式信道层 TransportCredentialOnly安全模式信道层 webHttpBinding Transport安全模式信道层 TransportCredentialOnly安全模式信道层 wsHttpBinding/ws2007HttpBinding Message安全模式信道层 Transport安全模式信道层 Trans

使用Maven的插件测试

Maven本身并不是一个单元测试框架,Java中主流单元测试框架为JUnit和TestNG.Maven所做的只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或TestNG的测试用例.这一插件就是maven-surefire-plugin,作为测试运行期Test Runner,它能兼容Junit3.JUnit4.TestNG. 在maven中的default生命周期,其中的test阶段被定义为"使用单元测试框架运行测试".而生命周期阶段需要绑定到某个插件的目标才能完成真正

maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖。

maven打可运行jar包的两种方式 maven常用的普通打包方式分为pom,jar,war等,至于这些打包类型就不介绍啦. 如果不进行特殊配置,那么打包出来的jar包是不可运行的.只能当作普通依赖包使用. 下面就介绍两种maven打可运行jar包的方式: 方式一:内置打包法 <plugins> <!-- 内置打包法 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <!-- 

自定义maven变量以及maven内置常量

本文转自:http://zheng12tian.iteye.com/blog/1770909 在创建Maven工程后,插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量. 在根节点project下增加properties节点,所有自定义变量均可以定义在此节点内,如下所示: Java代码 <!-- 全局属性配置 --> <properties> <project.build.name>tools</projec

170420、maven内置常量

Maven工程插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量. 在根节点project下增加properties节点,所有自定义变量均可以定义在此节点内,如下所示: <!-- 全局属性配置 --> <properties> <project.build.name>tools</project.build.name> <project.build.sourceEncoding>UTF-8&

maven的一些内置变量和常识

0.groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject.mojo生成的相对路径为:/org/myproject/mojo artifactId:项目的通用名称 0.1.如果要用dos窗口执行maven的命令的话,除了在环境变量里配置好maven之外,在dos的根路径下输入:mvn -v 来测试maven是否安装成功,然后 在把路径切换到项目所在pom文件的所在路径,在此路径下就可以执行maven命令了 0.2.mvn install是把打出的包装

绑定与非绑定方法及反射,isinstance和issubclass内置函数

目录 绑定方法与非绑定方法 1.绑定方法 2.非绑定方法(staticmethod) isinstance和issubclass 内置函数 1.isinstance 2.issubclass 反射 反射定义 4个可以实现反省的函数(内置函数) 反射使用场景 绑定方法与非绑定方法 1.绑定方法 ? 绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入 ? ? 绑定给对象的方法: ? 类中定义的函数默认就是绑定给对象的 ? 绑定给类的方法: ? 为类中定义的函数加上一个装饰器cla

maven内置属性

Maven共有6类属性: 内置属性(Maven预定义,用户可以直接使用) ${basedir}表示项目根目录,即包含pom.xml文件的目录; ${version}表示项目版本; ${project.basedir}同${basedir}; ${project.baseUri}表示项目文件地址; ${maven.build.timestamp}表示项目构件开始时间; ${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,