Salmon的全栈知识 Salmon的全栈知识
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 基础

    • Maven简介
    • 下载与安装
    • Maven基础概念
    • 第一个Maven项目(手工制作)
    • 第一个Maven项目(IDEA生成)
    • 依赖管理
    • 生命周期与插件
      • 1. 构建生命周期
        • 1.1 项目构建生命周期
        • 1.2 clean生命周期
        • 1.3 default生命周期
        • 1.4 site构建生命周期
      • 2. 插件
  • 高级

    • 分模块开发与设计
    • 聚合
    • 继承
    • 属性
    • 版本管理
    • 资源配置
    • 多环境开发配置
    • 跳过测试
    • 私服
  • 《Maven》笔记
  • 基础
Salmon
2024-02-23
目录

生命周期与插件

# 1. 构建生命周期

Maven构建生命周期描述的是一次构建过程经历经历了多少个事件

image-20240223223642348

# 1.1 项目构建生命周期

  • Maven对项目构建的生命周期划分为3套

    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,部署等
    • site:产生报告,发布站点等

    image-20240223223755011

# 1.2 clean生命周期

  • pre-clean 执行一些需要在clean之前完成的工作
  • clean 移除所有上一次构建生成的文件
  • post-clean 执行一些需要在clean之后立刻完成的工作

# 1.3 default生命周期

  • validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。

  • initialize(初始化) 初始化构建状态,比如设置属性值。

  • generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。

  • process-sources(处理源代码) 处理源代码,比如说,过滤任意值。

  • generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。

  • process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。

  • compile(编译) 编译项目的源代码。

  • process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。

  • generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。

  • process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。

  • generate-test-resources(生成测试资源文件) 为测试创建资源文件。

  • process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。

  • test-compile(编译测试源码) 编译测试源代码到测试目标目录.

  • process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。

  • test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。

  • prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。

  • package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。

  • pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。

  • integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。

  • post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。

  • verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。

  • install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。

  • deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

# 1.4 site构建生命周期

  • pre-site 执行一些需要在生成站点文档之前完成的工作
  • site 生成项目的站点文档
  • post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
  • site-deploy 将生成的站点文档部署到特定的服务器上

# 2. 插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上绑定有预设的功能
  • 通过插件可以自定义其他功能
<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-source-plugin</artifactId>
			<version>2.2.1</version>
			<executions>
				<execution>
					<goals>
						<goal>jar</goal>
					</goals>
					<phase>generate-test-resources</phase>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

image-20240223224712110

上次更新: 2025/07/23, 01:37:33
依赖管理
分模块开发与设计

← 依赖管理 分模块开发与设计→

Theme by Vdoing | Copyright © 2022-2025 Salmon's Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式