Maven实战——生命周期和插件

Maven的构建过程包括:初始化、编译、测试、打包、集成测试、部署

Maven拥有三套相互独立的生命周期:clean(清理项目)、default(构建项目)、site(建立项目站点)

每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,以clean为例:

pre-clean:执行一些清理前需要完成的工作

clean:清理上一次构建生成的文件

post-clean:执行一些清理后需要完成的工作

site的生命周期包括:pre-site,site,post-site,site-deploy

命令行与生命周期

以Maven命令为例

mvnclean:调用生命周期的clean阶段,即为pre?clean和clean阶段 mvn test:调用default生命周期的test阶段

mvncleaninstall:调用clean生命周期的clean阶段和default生命周期的install阶段。 mvn clean deploy site-deploy:调用clean生命周期的clean阶段、default生命周期的deploy阶段,及site生命周期的site_deploy阶段,此为site生命周期的最后一个阶段

命令行插件配置

很多插件目标的参数都支持从命令行配置,用户可以再Maven命令中使用-D参数,并伴随一个参数键=参数值的形式,来配置插件目标的参数。例如:

maven-surefire-plugin提供了一个maven.test.skip参数,当为true时就调过测试

$mvn install -Dmaven.test.skip=true

参数D是Java自带的。

POM中插件的全局配置

有些参数的值从项目创建到项目发布都不会改变,对于这种情况在POM文件中一次性配置就比输入方便。例如我们通常会需要配置maven-compiler-plugin告诉他编译Java1.5版本的源文件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
    </plugins>
</build>

POM中插件任务配置

以maven-antrun-plugin为例,将maven-antrun-plugin:run绑定到多个生命周期阶段上,再加以不同的配置,就可以让Maven在不同的生命周期执行不同的任务。


<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.3</version>
        <executions>
            <execution>
                <id>ant-validate</id>
                <phase>validate</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <tasks>
                        <echo>I‘m bound to validate phase.</echo>
                    </tasks>
                </configuration>
            </execution>
            <execution>
                <id>ant-verify</id>
                <phase>verify</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <tasks>
                        <echo>I‘m bound to verify phase.</echo>
                    </tasks>
                </configuration>
            </execution>
        </executions>
        </plugin>
    </plugins>
</build> 

在上述代码中,首先,maven-antrun-plugin:run与validate阶段绑定,从而构成一个id为ant-validate的任务。插件全局配置中的configuration元素位于plugin元素下面,而这里的configuration元素则位于execution元素下面,表示这是特定任务的配置,而非插件整体的配置。这个ant-validate任务配置了一个echo Act任务,向命令行输出一段文字,表示该任务是绑定到validate阶段的。第二个任务的id为ant-varify,它绑定到了verify阶段,同样它也输出一段文字到命令行,告诉我们任务绑定到了verify阶段。

时间: 2024-11-07 04:56:15

Maven实战——生命周期和插件的相关文章

Maven 系列 七 :Maven的生命周期和插件

一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周期是抽象的,其中的具体任务都交由插件来完成.Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plugin.用户也可自行配置或编写插件. 1 . 三套生命周期 Maven定义了三套生命周期:clean.default.site,每个生命周期都包含了一些阶段(phase).三套生命周期相互独立,但各个生

maven(7)生命周期和插件

[0]README 1)本文部分文字转自 "maven实战",旨在 review  "maven(7)生命周期和插件" 的相关知识: 2)maven 另外两个核心概念是生命周期和插件:maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任何可能都会由 maven-jar-plugin 完成: [1]何为生命周期 1)intro:maven 的 生命周期就是为了对所有的构建过程进行抽象和统一: 2)maven的生命周期: 生命周期本身不做任何

Maven使用教程三:maven的生命周期及插件机制详解

前言 今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子. 后面还会总结一个大的思维导图记录下自己学习的概括. Maven的生命周期介绍 先来复习几个命令: mvn clean package:打包 mvn clean install:安装到本地 mven clean deploy:部署到远程仓库 mvn有三套完全独立的生命周期,clean.default和site 每套生

【maven详解-生命周期】Maven的生命周期和插件

maven的生命周期是根据我们项目中常见的流程来定义的:清理.编译.测试.打包.集成测试.验证.部署等功能.maven的每个生命周期对应不同的阶段,每个阶段都对应不同的插件. maven定义了三套生命周期:clean.default.site.每个生命周期都包含了一些阶段(phase),三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase.执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase. 1

Hello Maven 4 - 生命周期和插件

三条独立的生命周期.同一生命周期内的阶段存在依赖关系    Clean Lifecycle        pre-clean        clean        post-clean            Default Lifecycle        validate        initialize        generate-sources        process-sources        generate-resources        process-resou

Maven实战读书笔记(四):Maven生命周期与插件

Maven的生命周期是对所有构建过程的抽象和统一.包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有构建步骤. Maven的生命周期是抽象的,其实际行为是由插件来完成的,生命周期和插件两者协同合作,密不可分. 这种思想与设计模式中的模板方法非常相似.模板方法模式在父类定义算法的整体结构,子类通过实现或者重写父类的方法来控制实际行为,这样既能保证算法有足够的可扩展性,又能严格控制算法的整体结构. 4.1 生命周期 Maven拥有3套独立的生命周期:clean.de

深入理解maven及应用(一):生命周期和插件

在项目里用了快一年的maven了,近期突然发现maven项目在eclipse中build时很慢,由于经经常使用clean install命令来build项目,也没有管那么多,但近期实在受不了乌龟一样的build速度,于是下定决心再看看<maven实战>吧, 对于我来说,maven最基本的作用有两个方面,一个是对jar包的依赖解决功能,自己管理jar包.还有一个功能就是项目的构建,打包部署.如今我认为最重要的还是maven的生命周期和插件机制,以下就来总结一下吧. 參考url:http://ma

Maven核心概念之仓库,生命周期与插件

宏观图 一.仓库 统一存储全部Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(还有一种特殊的远程仓库,为节省宽带和时间,在局域网内架设的一个私有的仓库server,用其代理全部的外部的远程仓库.内部项目也能部署到伺服上),其它公开的远程仓库(常见的由Java.net Maven库,Jboss Maven库). Maven依据坐标寻找构件的时候,它首先会查看本地仓库,假设本地仓库存在此构件,则直接使用:假

Maven系列学习(三)Maven生命周期和插件

Maven生命周期和插件 Maven另外的两个核心概念就是生命周期和插件,Maven的生命周期都是抽象的,其实实际行为都是由插件来完成的,生命周期和插件两者协同工作 1.生命周期 Maven的生命周期就是为了对所有的构建过程进行抽象和统一,这个生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤,Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务都是交给插件来完成的 一次构建(build):ini