`

05 Maven插件

阅读更多

一、.插件目标
      插件以独立的构件构件形式存在,为了能够利用代码,一个插件往往能够完成不能任务的多个功能。每个功能就是就是一个插件目录。

 

 
二、.插件绑定
      Maven的生命周期和插件相互绑定,用以完成实际的构建任务。准确的说,是生命周期的阶段和插件的目标相互绑定。


1.内置绑定
      为了让用户不使用任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了插件目标。
      其中clean和site的生命周期绑定的插件都比较简单直接。唯有default各种阶段绑定的插件和项目的打包类型有关。

 

 

 

 

2.自定义绑定
      用户可以自己选择将插件目标绑定到某个阶段上。如创建项目源码的jar包,用户需要自行配置绑定。代码如下:

<build>
 <plugins>
  <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven=source-plugin</artifactId>
   <version>2.1.1</version>
   <executions>
    <execution>
     <id>attach-sources</id>
     <phase>verify</phase>
     <goals>
      <goal>
       jar-no-fork
      </goal>
     </goals>
    </execution>
   </executions>
  </plugin>
 </plugins>
</build>

      executions下execution用来配置执行一个任务。该例中配置了一个id为attach-sources的任务,通过phase配置,将其绑定到verify阶段,再通过goals配置要执行插件目标。
      有时不通过phase元素指定生命周期的阶段,插件目标也能够绑定到生命周期中。原因是有很多插件的目标在编写时已定义了默认绑定阶段。
如果多个目标被绑定到阶段,按照目标的声明顺序执行。

 

 

三.插件配置
      可通过配置一些参数来改变插件的行为。


1.命令行插件配置
      在Maven命令中使用-D参数,并伴随着一个“参数键=参数值”。如:

 

mvn install -Dmaven.test.skip=true 

maven-surefire-plugin的maven.test.skip为true时,会跳过测试。参数-D是Java自带的。

 

 

 

 

2.POM中插件全局配置
      并不是所有插件参数都适合通过命令行设置。有些参数从项目创建到项目发布很少改变,针对这种情况,在POM文件中配置参数更方便。
      用户可能声明插件时,对此插件进行一个全局配置。例如,我们通常会配置maven-compile-plugin告诉按JAVA 1.5版本进行编译:

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

 

3.POM中插件任务配置
      除了可为整个插件配置全局参数,还可为某个插件任务配置特定的参数。以maven-antrun-plugin为例。它有一个目标,可用来在Maven中调用ant任务。用户将maven-antrun-plugin:rrun绑定到多个生命周期的阶段上,再加上不同的配置,就可让Maven在不同的生命阶段执行不同的任务。如:

<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>

 

四.获取插件信息
1.在线插件信息
       可从官方网站获取插件的帮助信息。


2.使用maven-help-plugin
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compile-plugins:2.1
其中的版本信息可省略;
也可使用插件的目标前缀替换坐标,如:
mvn help:describe -Dplugin=compiler
如果仅想获取某个目标的信息,可加上goal参数:
mvn help:describe -Dplugin=compiler -Dgoal=compile

 

五.从命令行调用插件
mvn -h 获取mvn使用帮助
可使用“插件前缀:gloa”或"groupid:artifactid:version:goal"

 

六.插件解析机制
1.插件仓库
      插件仓库使用pluginRepositories和pluginRepositorie来配置,除了标签名不一样,其他的和普通的远程仓库没有区别。

 

2.插件默认groupId
       在POM中配置插件时,如果该插件是Maven的官方插件(即groupId是org.apache.maven.plugins),可省略groupId配置。

 

3.解析插件版本
      如果没有指定插件的版本,默认使用release版本,也就是最新的发布版。

 

4.解析插件前缀
      插件前缀和groupid:artifactId是一一对应的。这种对应关系保存在插件仓库的元数据中。这个元数据位于groupId/maven-metadata.xml中。由于大多数插件来自特定的地方,Maven默认使用org.apahce.maven.plugins和org.codehaus.mojo两个groupId中的元数据。可通过配置setting.xml,让Maven检查其他groupid上的元数据。如:

<settings>
<pluginGroups>
 <pluginGroup>
  com.your.plugins
 </pluginGroup>
</pluginGroups>
</settings>
分享到:
评论

相关推荐

    WorkerError(解决方案).md

    项目中常见的问题,记录一下解决方案

    2024-2025第一学期一上U1~3.pdf

    2024-2025第一学期一上U1~3.pdf

    Redis详解与常见问题解决方案中文最新版本

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。感兴趣的朋友可以过来看看

    ASP+ACCESS航班在线定票系统设计(源代码+论文)(源代码+论文+说明文档).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    全国月尺度平均气温-Tm-1961-2022-025x025

    全国月尺度平均气温数据集(1961-2022, 0.25° × 0.25°)是一个高分辨率的网格化平均气温数据集,覆盖了中国大陆及周边地区。 该数据集通过科学方法整合气象观测和再分析数据,为气候研究、生态模型、农业生产、以及水资源管理等领域提供了重要支持。 数据下载后可显示详细信息。

    yolo算法-筷子数据集-588张图像带标签-.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    shell脚本编程实践,分享给有需要的人,仅供参考

    模拟退火算法shell脚本编程实践,分享给有需要的人,仅供参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    基于PCIe接口的高性能视频编辑系统.docx

    基于PCIe接口的高性能视频编辑系统

    python爬虫入门,分享给有需要的人,仅供参考

    python爬虫入门,分享给有需要的人,仅供参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    在线音乐网站的设计与实现

    在线音乐网站的设计与实现

    电工与电子技术课程标准.doc

    电工与电子技术课程标准.doc

    1-全国各地级市人口、城镇居民人均可支配收入、进出口总额、社会消费品零售总额2015-2021年-社科数据.zip

    根据搜索结果,以下是一条关于社科数据的内容介绍:本数据集涵盖了2015至2021年间全国各地级市的关键经济指标,包括人口数量、城镇居民人均可支配收入、进出口总额以及社会消费品零售总额。这些数据为研究区域经济发展提供了宝贵的信息资源,来源于各省市统计年鉴及国家统计局的官方数据,确保了数据的权威性和准确性。数据内容全面,缺失值较少,适合用于宏观经济分析、政策评估以及学术研究等多个领域。通过这些数据,研究者可以深入了解中国各地区在不同年份的经济表现和发展趋势。

    SessionStorageError(解决方案).md

    项目中常见的问题,记录一下解决方案

    yolo算法-大卡车数据集-96张图像带标签--卡车.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    6.html

    6

    [net毕业设计]asp.net教师教学评价分析系统(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    IP破解(5):DWC-ddrctl-lpddr54(LPDDR4/4X/5控制器)

    S家LPDDR5/4/4X 控制器,针对功耗、延迟、带宽和面积进行了优化,支持 JEDEC 标准 LPDDR5、LPDDR4 和 LPDDR4X SDRAM。控制器通过 DFI 5.0 接口连接到 S家LPDDR5/4/4X PHY 或其他 LPDDR5/4/4X PHY,以创建一个完整的内存接口解决方案。S LPDDR5/4/4X 控制器包括软件配置寄存器,可通过 AMBA 3.0 APB 接口访问。 // Key Used : DWC-DDRCTL (IP access) // Key Used : DWC-LPDDR54-CONTROLLER (Add-on feature access: DWC LPDDR5/4/4X Controller) 注意:压缩包只有IP使用文档,完整IP及无加密SV代码压缩包有获取方式。

    java桌面小程序,主要为游戏.zip学习资源

    java桌面小程序,主要为游戏.zip学习资源VM

    1-全国各省、市、县农业保险绿色保险收入支出赔付率统计数据2002-2020年-社科数据.zip

    全国各省、市、县农业保险绿色保险收入支出赔付率统计数据集涵盖了2002至2020年间的详细数据。该数据集包含全国31个省、自治区、直辖市的农业保险收入、支出、保险总支出、农业保险规模占比以及农业保险赔付率等关键指标。此外,数据还涉及341个地级市的农业保险收入和支出年度数据,时间跨度从2002年到2020年。特别值得一提的是,数据中还包括了县级政府农业保险补贴数据,覆盖了产粮大县726个和非产粮大县755个,时间范围为2016至2018年。这些数据均来源于历年中国保险年鉴,并经过手工整理,提供了农业保险规模占比与农业保险赔付率等重要指标。此数据集为研究中国农业保险市场的发展、政策效果评估以及风险管理提供了宝贵的实证资料。

    中医诊所系统,WPF.zip

    中医诊所系统,WPF.zip

Global site tag (gtag.js) - Google Analytics