Maven插件|学习笔记

简介: 快速学习Maven插件

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术Maven插件学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15905


Maven插件


内容介绍:

一、插件运行顺序

二、plugi和生命周期绑定

三、工程下载

四、运行打包

 

Maven是靠插件工作,在生命周期中间的阶段,只是定义了一个顺序,每个阶段是需要跟插件绑定到一起,再来完成相应的任务。Maven 中间有提供了很多的插件,每个插件也可以完成多个功能,所以把这个插件的每一个功能称之为插件的目标叫

plugin,最常用的插件是 springboot

 

一、插件运行功能

Maven 的 spring boot 里头就包含了多个功能,也就多个目标,

最常用的目标是 spring boo t的 run,run 主要是 Spring boot 的应用程序,会在maven的标准的目录的结构上找到target下jar文件,然后运行起来

1.repacekage

spring boot的repacekage进行一个重打包,会新重新打jar包或者war包,把它变成一个可执行的包

2.help

spring boot的help,是用来显示parking的一些帮助信息。

3.start

spring boot start 和 spring boot run 功能不同,start 是用来启动 spring boot的应用程序,但是它不会阻塞,在用 run 时,运行一个 jar 包,但目标被阻塞停,可能执行完后退出来,才会继续运行,start 允许在运行个应用程序以后再去运行

其他的应用程序

4.stop

spring bootstop,只用来停止用 start 运行的一个 springboot 的应用程序。这是常用的 Marvin spring boo t的 pluginplugin 一般用的时候并没有把它跟生命周期中间的阶段绑定起来,只是 在Marvin 的 plug 中间把它引进来,所以比如在idea 中间,在 plug 中间就能看到 plugin,可以直接去点它相应的目标,去完成相

应的功能

 

二、plugin和生命周期绑定

在很多时候实验会plugin 和生命周期中的阶段绑定起来,绑定有两种方式,一种是内置绑定,一种是定义绑定,内置绑定就是 Marvin 中间已经绑定好,比如在clean 生命周期中间的 clean 阶段,它就被绑定到默认绑定到 Marvin 的 clean 的plugin 的 clean 目标里

1. Default生命周期

Default比较复杂。因为它也会根据package的类型(就是打包,jar包,war,还是

pom),决定这些阶段是怎样绑定的

(1).jar包或war的打包

process -resources 阶段绑定到 maven 的 resources 阶段,Plug in 的 resource 的功能上

compile 阶段绑定的是 maven -compile 的 plug in:compile的目标。

Process -test -resources阶段绑定的是maven的resources-  plug in的taste

resources。

Test-compilel这个阶段绑定的是maven-compile-plugin的taste Compile阶段

test绑定的是maven的surefire-plugin的test阶段,

打包,如果是jar包的话,绑定的是maven-install-plugin的jar,如果是war包的话就是maven-install-plugin的war

install绑定的是maven-install-plugin的install的目标

deploy绑定的是maven-deploy-plugin:deploy的目标

这是打jar包或者war包的时候,Default生命周期的阶段的绑定的情况

(2).pom打包

如果package一个pom,这种情况其实是用在附子项目管理的时候,就是在附项目中间,是不需要去打包的,只需要去定义在子项目中间所共享的一些信息。这时package的值是pom,

Maven去写pom文件的时候,它除了install和deploy以外所有的阶段都没有绑起来,因为在负的pom文件定义的结构中间既不需要编译,也不需要做任何其他的,它只是绑定了install和deploy,后绑定到Marvin的install-plugin 的install和Marvin的deploy- plugin的deploy

2.site生命周期

site阶段绑定的是Marvin- sight -plugin的site目标,

Site deploy,则绑定到plugin的deploy的目标上面,这是Marvin的内置的绑定

所以如果中间不做任何定义的话,Maven的这些所有的阶段就是这样绑定到对应的插件上,有时候需要在Marvin的不同阶段去做一些自己定义的一个动作,定义的一个功能,那就需要在proe中间去自定义这个阶段和插件的绑定关系。

 

三、工程下载

在idea中间,怎样把一个工程从get helpp上把它下载下来

(1)、选择idea的VCS菜单下的get from watching control,

这样就可以从get服务器上把工程下载下来。Version control选择git的版本,然后在url上面输入JAVAEEPLATFORM这个工程的目录,然后选择clone,它就会从服务

器上把这个JAVA的实例代码全部下载下来。

图片1.png

在下载下来的文件夹里maven 的标准的目录结构,这时idea并不会把它认为是一个项目的工程,还需要在 idea 中间把它 input 成为一个 idea 的工程,在maven的目录的pom文件上,点右键,

图片2.png

选择 ads maven project 样式的 idea 的 ide 去读取 com文件里的相关的定义,然后把它变成一个在ide里的工程,当变成ide里的工程后,相应的目录的颜色会发生改变,在 ide 中间,它会认出哪些是生产代码的的目录,哪些是资源目录,哪些是

测试代码的目录。

同时在右边的type里头,出现 maven 的 type,点开 maven 的 type,能看到已经识别出来的工程项目 autowdemo,这里有三个 fold,第一个是 life cycle,就是生命周期阶段,第二个是这个 plugins,也就是在pom经中间定义的 plugin加上maver。第三个是 dependencies,这是在pom里面定义的所有的 dependenciesjar.

图片3.png

主要使用的是 life cycle 和 plugins。首先看下 life cycle,在 ide 中间的 life cycle中间,并没有把所有的阶段都放到 life cycle 中间。主要是在 clean 生命周期中间的 clean 阶段,在 site 生命周期中间的 site 阶段,以及在 default 生命周期中间的validate compile、 test package、 verify、install deploy几个阶段,因为在使用maven的时候主要的阶段,不太会使用Generate source,Process resource这些阶段常使用的阶段在idea的界面中间,都把它直接列了出来

 

四、运行打包

打包的package的阶段是在default里的,如果说在界面上可以看到运行package的阶段的话,它前面的validate compare和test这些阶段都会跟着运行,运行完后,

可以看到plugin的目标都在一一的执行

1.运行绑定

1)、首先resources- plugin 的目标,绑定的是在default的目标。

 图片5.png

绑定的是在default生命周期中间的process resource的一个阶段

2)、后面lemon的compare plaguin的compel目标,它绑定的是的default生命周期的compare阶段

3)、第三个是Resource的test resource阶段,绑定的是default生命周期的test resources的这个阶段。

4)、第四个是test compile,绑定的是default生命周期中间的test compile这个阶段,然后是test是绑定在default test这个阶段

所以当运行party的时候,它其实是为运行这些前面的这些阶段所绑定的plug in的目标

2. 执行测试的结果

jar和repection,这两个目标都是绑定在package的阶段里的。

目录生成了一个红色的touch的目录,在touch的目录中间,可以看到编译出来的class文件,打出来的jar包,这就是在package阶段最后执行结果

图片7.png

执行一下 clean 阶段,Clean 阶段是在 clean生命周期的,主要目的是为了清掉所有构建出来的文件,它运行的是 clean flag in 的 clean,是在 default 的 clean 阶段的绑定的。Photo 的 clean 阶段的绑定的插件目标,运行完插件目标以后,可以

看到插件的的目录整个就被删掉了.

所以通过idea的右边的maven的标签可以很方便的使用 idea。由于工程师使用

maven 来进行工程管理,所以一般不会使用 idea 里的自身的功能去进行程序的运行和打包,而是借助于 Maven 来实现,如果要去修改这个配置的话,也是改的这

个 mama 里头的配置,不会去改 idea 里头的这个配置。

所以这样的话,就把 idea 退化,成为我们一个写代码的工具,整个工程的打包编

译的这个过程,交给了 maven 来做。

相关文章
|
22天前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
208 80
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
1天前
|
Java 测试技术 Maven
Maven 插件
Maven 插件
|
5天前
|
Java 测试技术 Maven
Maven 插件
Maven 插件
|
6天前
|
Java 测试技术 Maven
Maven 插件
Maven 插件
|
3天前
|
Java 测试技术 Maven
|
9天前
|
Java 测试技术 Maven
|
7天前
|
Java 测试技术 Maven
|
8天前
|
Java 测试技术 Maven
|
20天前
|
Java 测试技术 Maven
Maven 插件
Maven 插件
|
28天前
|
Java 测试技术 Maven
Maven 插件
Maven 插件