Maven生命周期

生命周期和插件详解

纲要

1、用户自定义属性的使用
2、Maven生命周期详解
3、Maven插件详解

Maven常用命令如下:

mvn clean
mvn compile
mvn test
mvn package
mvn install
mvn install -Dmaven.test.skip=true
mvn deploy
mvn help:system

用户属性Properties的使用

pom文件中对于一些重复的代码,可以做提取,将同样的代码或者变量值,提取成方法或变量,做到重用,方便维护;例子如下:

<properties>
    <spring.group>org.springframework</spring.group>
    <spring.version>5.2.1.RELEASE</spring.version>
</properties>

<dependencies>
    <dependency>
        <groupId>${spring.group}</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>${spring.group}</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>${spring.group}</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

用户可以再properties中自定义一些用户属性,然后可以在其它地方使用${属性名称}这种方式进行引用

生命周期

开发一个项目通常的流程为:
创建项目->编写代码->清理已编译代码->编译代码->执行单元测试->打包->集成测试->验证->部署->生成站点等,这些环节组成了项目的生命周期,也叫做项目的构建过程。

生命周期详解
纲要:
Maven定义了三套生命周期:
1、clean 生命周期
2、default生命周期
3、site生命周期
这三套生命周期,相互独立,无依赖关系。
但是每个生命周期中的各个阶段是有顺序之分的,并且后面的阶段依赖于前面的阶段
clean生命周期

目的:清理项目,包含三个阶段:
1、pre-clean:执行一些需要在clean之前完成的工作
2、clean:移除所有上一次构建生成的文件
3、post-clean:执行一些需要在clean之后立刻完成的工作
调用 mvn post-clean会执行上面三个阶段所有操作

default生命周期

目的:用于构建应用,包含23个阶段:
1、validate:校验:校验项目是否正确并且具备所有必要的信息,可以完成项目的构建过程
2、initialize:初始化:初始化构建状态,比如设置属性值(properties)
3、generate-sources:生成源代码:生成包含在编译阶段中的任何源代码?
4、process-sources:处理源代码:如:过滤任意值?
5、generate-resources:生成资源文件:生成将会包含在项目包中的资源文件
6、process-resources:编译:复制和处理资源到目标目录,为打包阶段做好准备
7、compile:处理类文件:编译项目的源代码
8、process-classes:处理类文件:处理编译生成的文件,比如说对Java class文件做字节码改善优化
9、generate-test-sources:生成测试源代码:生成包含在编译阶段中的任何测试源代码
10、process-test-sources:处理测试源代码:如:过滤任意值
11、generate-test-resources:生成测试源文件
12、process-test-resources:
13、test-compile:编译测试源码:编译测试源代码到测试目标目录
14、process-test-classes:处理测试类文件:处理测试源码编译生成文件
15、test:测试:使用合适的单元测试框架运行测试(Junit是其中之一)
16、prepare-package:预打包
17、package:打包:将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件
18、pre-integration-test:集成测试前:在执行集成测试前进行必要的动作,比如:搭建需要的环境
19、integeration-test:集成测试:处理和部署项目到可以运行集成测试环境中
20、post-integration-test:集成测试后:在执行集成测试完成后进行必要的动作,比如:清理集成测试环境
21、verify:验证:运行任意的检查来验证项目的包有效且达到质量标准
22、install:安装:安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖
23、deploy:部署:将最终的项目包复制到远程仓库中与其他开发者和项目共享

site生命周期

目的:建立和发布项目站点:
1、pre-site:执行一些需要在生成站点文档之前完成的工作
2、site:生成项目的站点文档
3、post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
4、site-deploy:将生成的站点文档部署到特定的服务器上

mvn命令和生命周期

执行某套生命周期中的一个命令时,会先执行该命令之前的所有命令
mvn clean运行时,会先执行mvn pre-clean,在执行clean

Maven插件

目标:maven插件以jar的方式存在于仓库中,通过坐标进行访问;插件的功能叫做插件的目标;

插件与生命周期的绑定
clean生命周期:maven-clean-plugin:clean
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-surefile-plugin:test	执行测试用例
package	maven-jar-plugin:jar	创建项目jar包
install	maven-install-plugin:install	将输出构件安装到本地仓库
deploy	maven-deploy-plugin:deploy	将输出的构件部署到远程仓库
site	maven-site-plugin:site
site-deploy	maven-site-plugin:deploy
自定义绑定

可以将一些阶段绑定到指定的插件目标上来完成一些操作,这种自定义的绑定可以让maven项目在构建过程中执行更多丰富的操作

	<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <!-- 使用插件需要执行的任务 -->
                <execution>
                    <!-- 任务id -->
                    <id>attach-source</id>
                    <!-- 任务中插件的目标,可以指定多个 -->
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                    <!-- 绑定的阶段 -->
                    <phase>verify</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
	</build>
注意上面配置的attach-source,后面输出中会有。

id:任务的id,需唯一,如果不指定,默认为default。

每个插件的配置在pom.xml的plugins元素中只能写一次,否则会有警告。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值