Maven插件介绍一

news2024/11/24 7:52:55

Maven插件介绍一

Maven生命周期

Maven 将项目抽象为一个特定生命周期,基于生命周期及其特定阶段搭建框架,以插件的形式提供生命周期不同阶段的业务逻辑。

Maven标准构建生命周期和阶段

生命周期

阶段

说明

Clean

pre-clean

在真正项目清理前执行阶段

clean

移除上次构建生成的所有文件

post-clean

clean的后续操作

Default

validate

校验项目的正确性及必要信息是否可用

initialize

初始化构建,比如设置属性值,创建目录

generate-sources

生成编译涉及到的源码

process-sources

处理源码

compile

编译项目源码

process-classes

编译后处理

generate-test-sources

生成测试相关源码

process-test-sources

处理测试相关源码

generate-test-resources

创建测试资源

process-test-resources

拷贝和处理测试资源,将其放置于目标目录

test-compile

编译测试源码到目标目录

process-test-classes

测试类后处理

test

执行测试套件

prepare-package


执行打包准备

package

打包

pre-integration-test

集成测试预处理

integration-test

执行集成测试

post-integration-test

集成测试后处理

verify

校验包

install

将包安装到本地仓库

deploy

将包安装到远程仓库

SITE

pre-site

执行工程站点生成前操作

site

生成项目站点文档

post-site

执行项目站点生成后操作

site-deploy

将项目文档发布到目标web服务器

执行生命周期

Mvn  verify

Mvn clean deploy

执行生命周期本质上是执行生命周期绑定插件的目标,插件目标对应于插件实现的一项任务,插件目标可以绑定到1个活多个阶段,也可以不绑定任何构建阶段,而通过命令直接调用来执行。

如 mvn clean dependency:copy-dependencies package 表示一次执行 clean阶段绑定的插件目标,dependency:copy-dependencies, package阶段绑定的插件目标。

阶段绑定插件及目标

Clean阶段

Phase

plugin:goal

clean

clean:clean

ejb / ejb3 / jar / par / rar / war 对应项目默认生命周期阶段绑定插件

Phase

plugin:goal

process-resources

resources:resources

compile

compiler:compile

process-test-resources

resources:testResources

test-compile

compiler:testCompile

test

surefire:test

package

ejb:ejb or ejb3:ejb3 or jar:jar or par:par or rar:rar or war:war

install

install:install

deploy

deploy:deploy

maven-plugin 项目默认生命周期阶段绑定插件

Phase

plugin:goal

generate-resources

plugin:descriptor

process-resources

resources:resources

compile

compiler:compile

process-test-resources

resources:testResources

test-compile

compiler:testCompile

test

surefire:test

package

jar:jar and plugin:addPluginArtifactMetadata

install

install:install

deploy

deploy:deploy

POM 项目默认生命周期阶段绑定插件

Phase

plugin:goal

package

install

install:install

deploy

deploy:deploy

Maven 插件

Maven官方插件及其和生命周期阶段绑定关系

       插件列表见Maven – Available Plugins,列举了maven生命周期阶段绑定的核心插件。点击对应插件进行详细了解。

如Compiler阶段对应插件Apache Maven Compiler Plugin 。

插件的配置和执行

插件声明:, <build>标签下的<pluginManagement>可以生命项目中使用的插件, 这里的插件列表不会被实际加载,一般用于在父POM文件中定义, 对插件版本进行管理, 子模块中可以直接使用groupId和artifactId执行插件, 不用指定版本。

<pluginManagement><plugins>…</plugins></ pluginManagement>

插件的配置:<build>标签直接使用<plugins>则定义项目实际加载的插件,如父POM没有通过生命指定版本, 使用配置时需要制定插件版本。

以compiler插件为例

<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-compiler-plugin</artifactId>

    <configuration>

        <source>1.8</source>

        <target>1.8</target>

        <encoding>${project.build.sourceEncoding}</encoding>

        <compilerArgs>

            <compilerArg>-parameters</compilerArg>

        </compilerArgs>

    </configuration>

</plugin>

对于Maven生命周期阶段默认绑定的插件可以不指定executions配置阶段和目标。

下面是一个绑定maven生命周期阶段和执行目标的插件配置。

<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-assembly-plugin</artifactId>

    <configuration>

        <appendAssemblyId>false</appendAssemblyId>

        <descriptors>

            <descriptor>assembly.xml</descriptor>

        </descriptors>

    </configuration>

    <executions>

        <execution>

            <id>make-assembly</id>

            <phase>package</phase>

            <goals>

                <goal>single</goal>

            </goals>

        </execution>

    </executions>

</plugin>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

threejs(11)-精通着色器编程(难点)1

一、初识着色器语言 GLSL 代表 openGL Shading Language&#xff0c;它是着色器程序的特定标准&#xff0c;您将在接下来的章节中看到。根据硬件和操作系统&#xff0c;还有其他类型的着色器。在这里&#xff0c;我们将使用由Khronos Group监管的 openGL 规范。了解 OpenGL 的…

java--String

1.String创建对象封装字符串数据的方式 ①方式一&#xff1a;java程序中的所有字符串文字(例如"abc")都为此类的对象 ②方式二&#xff1a;调用String类的构造器初始化字符串对象。 2.String提供的操作字符串数据的常用方法

table组件隐藏额外内容并使用Toolpit显示(vue3)

找到table组件的APi的一个属性 直接在代码里面添加 效果&#xff1a;

JAVA代码视频转GIF(亲测有效)

1.说明 本次使用的是JAVA代码视频转GIF&#xff0c;maven如下&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…

Spring Gateway网关服务分析

关键原理解析 基本原理 Spring Cloud Route核心可以概括为Gateway过滤器框架和Route定义和解析两块内容。 DefaultFilter、GatewayFilter、GlobalFilter 三种过滤器的区别及执行顺序 SpringCloud Gateway中的提到的过滤器包括三种类型&#xff1a; DefaultFilter&#xff1…

CAN总线协议的理解以及移植stm32代码并使用

什么是CAN总线协议 是一种异步半双工的通讯协议&#xff0c;只有CAN_High与CAN_Low两条信号线。 有两种连接形式&#xff1a;闭环总线&#xff08;高速&#xff09;和开环总线&#xff08;远距离&#xff09; 他使用的是一种差分信号来传输电信号 所谓差分信号就是两条信号线…

软件测试|黑盒测试方法论-判定表

在因果图分析法中最后会得出一个判定表&#xff0c;可以看出因果图和判定表是有联系的&#xff0c;一般需要结合起来使用。 因果图是一种分析工具&#xff0c;通过分析最终得到判定表&#xff0c;再通过判定表编写测试用例。在一定情况下也可以直接书写判定表&#xff0c;省略…

Stable Diffusion webui 源码调试(一)

Stable Diffusion webui 源码调试&#xff08;一&#xff09; 个人模型主页&#xff1a;LibLibai stable-diffusion-webui 版本&#xff1a;v1.4.1 内容更新随机&#xff0c;看心情调试代码~ 调试txt2img的参数和工作流 文件 /work/stable-diffusion-webui/modules/txt2img…

软件测试|selenium执行js脚本

JavaScript是运行在客户端&#xff08;浏览器&#xff09;和服务器端的脚本语言&#xff0c;允许将静态网页转换为交互式网页。可以通过 Python Selenium WebDriver 执行 JavaScript 语句&#xff0c;在Web页面中进行js交互。那么js能做的事&#xff0c;Selenium应该大部分也能…

地铁机电设备健康管理现状及改善方法

轨道交通和我们的生活息息相关&#xff0c;从火车到地铁再到轻轨&#xff0c;给人们的出行带来了很大的便利。因此&#xff0c;保障轨道交通的的正常运行和安全至关重要&#xff0c;需要运维人员及时排查设备的问题&#xff0c;解决故障&#xff0c;保证轨道交通的安全运行。本…

Cygwin工具制作Redis服务端Window版本

文章目录 前言一、cygwin是什么&#xff1f;二、cygwin安装Redis源码编译 前言 在学习到redis&#xff0c;经常需要用到一个redis服务端&#xff0c;如果有买服务器或者本机可以支持经常开虚拟机&#xff0c;也是可以的&#xff0c;如果不具备这些条件&#xff0c;还是本机win…

Leetcode刷题详解——字母大小写全排列

1. 题目链接&#xff1a;784. 字母大小写全排列 2. 题目描述&#xff1a; 给定一个字符串 s &#xff0c;通过将字符串 s 中的每个字母转变大小写&#xff0c;我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1&#xff1a; 输入&…

2023年9月少儿编程 中国电子学会图形化编程等级考试Scratch编程二级真题解析(判断题)

2023年9月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、下列两个程序运行效果一样 答案:对 考点分析:考查积木综合使用,重点考查重复执行和坐标积木 两个程序都是在x=0,y=100的时候停止,所以正确 27、甲、乙和丙,一位是山东人,一位是河南人,…

死锁问题概述

文章目录 死锁的概念死锁的定义相似概念&#xff1a;饥饿死锁产生的原因死锁产生的必要条件死锁的预防破坏互斥条件破坏不可剥夺/不可抢占条件破坏请求并保持条件破坏循环等待条件 死锁避免安全性算法 死锁的处理策略死锁的检测死锁的解除 死锁的概念 死锁的定义 多个进程由于…

什么是代理IP池?如何判断IP代理商的IP池是否真实优质?

代理池充当多个代理服务器的存储库&#xff0c;提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务&#xff0c;而无需担心被检测或阻止的风险。代理池为各种在线活动&#xff08;例如网页抓取、安全浏览等&#xff09;提高后勤保障。 读完…

<C++> list模拟实现

目录 前言 一、list的使用 1. list的构造函数 2. list iterator的使用 3. list capacity 4. list modifiers 5. list的算法 1. unique​ 2. sort 3. merge 4. remove 5. splice 二、list模拟实现 1. 设置节点类 && list类 2. push_back 3. 迭代器 重载 * 重载前置 …

统计一个只包含大写字母的字符串中顺序对的数量.其中顺序对的定义为前面的字符小后面的字符大.例如在“ABC“中的顺序对为3,因为有AB,AC,BC

哈希法&#xff1a;扫描字符串&#xff0c;将出现的字符次数加1&#xff0c;统计比当前字符字典序小的字母出现的次数&#xff0c;即为顺序串的个数。 int CounSq(const char* arr)//时间复杂度O&#xff08;n&#xff09; {int sig[26] { 0 };int index 0;int sum 0;for (…

【TiDB】TiDB CLuster部署

目录 0 大纲 一 集群部署工具TiUP简介 1 TiUP 简介 2 TiUP使用 3 TiUP使用举例 二 TiDB Cluster安装配置需求 1 生产环境硬件需求 2 操作系统需求 三 TIDB部署 1 软硬件需求以及前置检查​编辑 2 安装TiUP 组件 ​3 集群拓扑文件 4 执行部署命令 &#xff08;1&…

如何使用 NFTScan NFT API 在 zkSync 网络上开发 Web3 应用

zkSync 是由 Matter Labs 创建的&#xff0c;是一个以用户为中心的 zk rollup 平台&#xff0c;它是以太坊的第 2 层扩展解决方案&#xff0c;使用 zk-rollups 作为扩展技术&#xff0c;与 optimistic rollups 一样&#xff0c;zk-rollups 将会汇总以太坊主网上的交易并将交易证…

SSM图书管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 图书管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和 数据库&#xff0c;系统主要…