国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

手?jǐn)]一款屬于自己的 Maven 插件,說干就干

存儲
今天,冰河給大家分享一篇大部分人都不會的技能,那就是我們自己動手寫一款屬于自己的Maven插件。好了,直接進(jìn)入今天的主題吧。

[[432395]]

大家好,我是冰河~~

今天,冰河給大家分享一篇大部分人都不會的技能,那就是我們自己動手寫一款屬于自己的Maven插件。好了,直接進(jìn)入今天的主題吧。

Maven插件的相關(guān)概念

插件坐標(biāo)定位

插件與普通jar包一樣包含坐標(biāo)定位屬性即:groupId、artifactId、version,當(dāng)使用該插件時會從本地倉庫中搜索,如果沒有則從遠(yuǎn)程倉庫下載,例如下面的配置所示。

  1. <!-- 唯一定位到dependency 插件 --> 
  2. <groupId>org.apache.maven.plugins</groupId> 
  3. <artifactId>maven-dependency-plugin</artifactId> 
  4. <version>2.10</version> 

execution配置

execution 配置包含一組指示插件如何執(zhí)行的屬性:

  • id :執(zhí)行器命名
  • phase:標(biāo)識執(zhí)行的階段
  • goals:標(biāo)識執(zhí)行的目標(biāo)或功能
  • configuration:標(biāo)識執(zhí)行目標(biāo)所需的配置文件

插件的配置和使用示例

將插件依賴拷貝到指定目錄。

  1. <plugin> 
  2.   <groupId>org.apache.maven.plugins</groupId> 
  3.   <artifactId>maven-dependency-plugin</artifactId> 
  4.   <version>3.1.1</version> 
  5.   <executions> 
  6.     <execution> 
  7.       <id>copy-dependencies</id> 
  8.       <phase>package</phase> 
  9.       <goals> 
  10.         <goal>copy-dependencies</goal> 
  11.       </goals> 
  12.       <configuration>        
  13.         <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> 
  14.         <overWriteReleases>false</overWriteReleases> 
  15.         <overWriteSnapshots>true</overWriteSnapshots> 
  16.         <excludeTransitive>true</excludeTransitive> 
  17.       </configuration> 
  18.     </execution> 
  19.   </executions> 
  20. </plugin> 

常用插件的使用

通過命令執(zhí)行插件語法

除了通過配置的方式使用插件以外,Maven也提供了通過命令直接調(diào)用插件目標(biāo)其命令格式如下所示。

  1. mvn groupId:artifactId:version:goal -D{參數(shù)名} 

通過命令執(zhí)行插件示例

(2)展示pom的依賴關(guān)系樹

  1. mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:tree 

(3)直接簡化版的命令,但前提必須是maven 官方插件

  1. mvn dependency:tree 

其它常用插件

(1)查看pom 文件的最終配置

  1. mvn help:effective-pom 

(2)原型項目生成

  1. archetype:generate 

(3)快速創(chuàng)建一個Web程序

  1. mvn archetype:generate -DgroupId=io.mykit.web -DartifactId=mykit-maven-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 

(4)快速創(chuàng)建一個Java項目

  1. mvn archetype:generate -DgroupId=io.mykit.java -DartifactId=mykit-maven-java -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

自定義Maven插件

這里,我們先來說說自定義Maven插件的步驟,這里,我將自定義Maven插件的步驟總結(jié)如下。

(1)創(chuàng)建maven 插件項目

(2)設(shè)定packaging 為maven-plugin

(3)添加插件依賴

(4)編寫插件實現(xiàn)邏輯

(5)打包構(gòu)建插件

接下來,我們就來實現(xiàn)自定義Maven插件。

配置插件項目的pom.xml

這里,我直接跳過了Maven項目的創(chuàng)建,相信小伙伴們都會創(chuàng)建Maven項目,這里,我就不再贅述了,直接給出pom.xml文件的配置,如下所示。

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" 
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  5.     <modelVersion>4.0.0</modelVersion> 
  6.     <groupId>io.mykit.plugin</groupId> 
  7.     <version>1.0.0-SNAPSHOT</version> 
  8.     <artifactId>mykit-maven-plugin</artifactId> 
  9.     <packaging>maven-plugin</packaging> 
  10.     <dependencies> 
  11.         <dependency> 
  12.             <groupId>org.apache.maven</groupId> 
  13.             <artifactId>maven-plugin-api</artifactId> 
  14.             <version>3.5.0</version> 
  15.         </dependency> 
  16.         <dependency> 
  17.             <groupId>org.apache.maven.plugin-tools</groupId> 
  18.             <artifactId>maven-plugin-annotations</artifactId> 
  19.             <version>3.5</version> 
  20.         </dependency> 
  21.     </dependencies> 
  22.     <build> 
  23.         <plugins> 
  24.             <plugin> 
  25.                 <groupId>org.apache.maven.plugins</groupId> 
  26.                 <artifactId>maven-compiler-plugin</artifactId> 
  27.                 <version>3.6.1</version> 
  28.                 <configuration> 
  29.                     <source>1.8 </source> 
  30.                     <target>1.8 </target> 
  31.                 </configuration> 
  32.             </plugin> 
  33.         </plugins> 
  34.     </build> 
  35. </project> 

Maven插件的實現(xiàn)類

接下來,我們來編寫Maven插件的實現(xiàn)類。這里,我直接給出類的源代碼,如下所示。

  1. package io.mykit.plugin;  
  2.  
  3. import javafx.beans.DefaultProperty; 
  4. import org.apache.maven.plugin.AbstractMojo; 
  5. import org.apache.maven.plugin.MojoExecutionException; 
  6. import org.apache.maven.plugin.MojoFailureException; 
  7. import org.apache.maven.plugins.annotations.LifecyclePhase; 
  8. import org.apache.maven.plugins.annotations.Mojo; 
  9. import org.apache.maven.plugins.annotations.Parameter; 
  10.  
  11. /** 
  12.  * @author binghe 
  13.  * @description 自定義Maven插件 
  14.  */ 
  15. @Mojo(name = "binghe"
  16. public class MykitMavenPlugin extends AbstractMojo { 
  17.     private final Logger logger = LoggerFactory.getLogger(MykitMavenPlugin.class); 
  18.     @Parameter(property="sex"
  19.     String sex; 
  20.  
  21.     @Parameter(property="describe"
  22.     String describe; 
  23.  
  24.     public void execute() throws MojoExecutionException, MojoFailureException { 
  25.         logger.info(String.format("binghe sex=%s describe=%s",sex,describe)); 
  26.     } 

打包安裝插件

將自定義的Maven插件打包并安裝到本地Maven倉庫,如下所示。

  • 打包
  1. mvn clean package 
  • 安裝到本地倉庫
  1. mvn clean install 

其他項目中引用自定義插件

如果需要在其他項目中使用我們自定義的Maven插件,則只需要創(chuàng)建一個Maven項目,在Maven項目的pom.xml文件中引入如下配置即可。

  1. <build> 
  2.     <plugins> 
  3.         <plugin> 
  4.             <!--引入剛剛的插件依賴--> 
  5.              <groupId>io.mykit.plugin</groupId> 
  6.              <version>1.0.0-SNAPSHOT</version> 
  7.              <artifactId>mykit-maven-plugin</artifactId> 
  8.             <!-- 這里加入的是相關(guān)參數(shù),這些參數(shù)必須跟插件實現(xiàn)里面的屬性保持一致 --> 
  9.             <configuration> 
  10.                 <sex>男</sex> 
  11.                 <describe>冰河技術(shù)微信公眾號作者</describe> 
  12.             </configuration> 
  13.         </plugin> 
  14.     </plugins> 
  15. </build> 

好了,今天就到這兒吧,我是冰河,我們下期見!!

 

責(zé)任編輯:武曉燕 來源: 冰河技術(shù)
相關(guān)推薦

2022-04-18 19:02:53

chrome擴展瀏覽器

2021-09-26 05:00:11

Vscode插件

2015-04-09 09:38:53

Tap4FunAWS手游

2024-06-11 00:00:00

Java線程安全緩存組件

2021-05-14 13:30:17

Mybatis分表插件

2011-08-09 09:16:44

Eclipse

2011-01-19 13:19:39

Thunderbird插件

2013-09-04 13:27:05

Linux發(fā)行版

2011-06-17 11:22:33

jQueryjQuery插件

2022-05-13 08:35:42

單元測試IDEA

2022-04-30 09:49:58

終端工具插件

2021-11-05 15:23:35

Karta插件安全工具

2020-04-16 08:27:51

IDEA插件編輯工具Java

2022-04-22 08:22:50

MVCCMySQLC++

2009-11-30 16:59:49

2022-02-23 14:21:20

Chrome插件瀏覽器

2022-03-01 11:38:51

RPC框架后端

2013-10-15 10:15:28

2014-12-16 10:11:22

2024-08-16 08:31:05

點贊
收藏

51CTO技術(shù)棧公眾號

66m—66摸成人免费视频| 啦啦啦在线视频免费观看高清中文 | 亚洲婷婷国产精品电影人久久| 欧美电影免费观看完整版| 一本色道久久99精品综合| 91p九色成人| 久久91精品国产91久久小草 | 蜜桃av在线免费观看| 久久av中文字幕片| 精品久久久久一区二区国产| yw在线观看| 色综合天天综合网天天狠天天| 国产精品国产精品国产专区蜜臀ah | 高清电影在线免费观看| 中文一区在线播放| 粉嫩喷白浆久久| 欧美一区二区三区视频免费播放| 中中文字幕av在线| 97在线免费观看| 久久在线精品| 麻豆成人av| 天天做天天爱天天爽综合网| 97国产真实伦对白精彩视频8| 在线视频1区2区| 国产精品第13页| 9久久婷婷国产综合精品性色 | 日韩国产精品一区二区三区| 2020国产精品小视频| 亚洲毛片在线观看.| 精品999日本久久久影院| 久久综合久中文字幕青草| 中文字幕不卡免费视频| 欧美日韩免费看| 尤物在线视频| 久久久久国产一区二区三区| 亚洲综合国产激情另类一区| 国产毛片久久久久久国产毛片| 亚洲成人av一区| 国产视频一区二区三区四区| 一区二区三区精品| 国产免费拔擦拔擦8x高清在线人| av男人的天堂网| 久久久精品国产免大香伊| 91嫩草国产丨精品入口麻豆| 久久国产乱子精品免费女| 欧美一二三区| 免费日本视频一区| 一区二区精品在线| 黑人精品欧美一区二区蜜桃| 一本一本a久久| 精品一区二区在线看| 伊人情人网综合| 国产精品99久久久久久似苏梦涵 | 国产欧美日韩综合一区在线观看| 日韩欧美网站| 国产欧美精品va在线观看| 成人区精品一区二区婷婷| 国产精品第100页| 欧美综合在线视频观看 | 91在线超碰| 国产丝袜高跟一区| 影视一区二区三区| 麻豆一区二区在线观看| 精品午夜视频| 国产99视频精品免视看7| 久久免费大视频| 鬼打鬼之黄金道士1992林正英| 一区二区久久| 四虎精品欧美一区二区免费| 久久久久久免费| 啊灬啊灬啊灬啊灬高潮在线看| 在线精品视频免费观看| free性欧美hd另类精品| 国产手机视频精品| 国产精品一区二区中文字幕 | 成人av电影在线观看| 最新中文字幕2018| 天天色天天操综合| 欧美1234区| 欧美大片在线影院| 午夜av一区| a级黄色片网站| 中文字幕国产一区二区| 日本成人一区| 国产一区二区三区三区在线观看| 国产suv精品一区| 国产欧美日韩一区| 国产99久久久国产精品潘金网站| 成人拍拍拍在线观看| 欧美午夜在线一二页| 久久三级毛片| 91亚洲精品久久久| 国产高清在线精品| 导航福利在线| 亚洲区免费影片| 少妇精品久久久| 色一情一区二区三区四区| 2024国产精品| 久操视频在线免费播放| 欧美精品亚州精品| 亚洲精品专区| av污在线观看| 亚洲精品国产福利| 国产韩日影视精品| 香港三级韩国三级日本三级| 色婷婷精品久久二区二区蜜臂av | 欧美一区二区三区白人| 国产精品久一| 久久精品国产精品青草色艺 | 国内成人精品一区| 日韩二区三区在线观看| 国产精品视频黄色| 欧美va亚洲va香蕉在线| 国内精品久久久久久久久电影网| 五月天男人天堂| 黄色成人av网| 日本成人精品| 异国色恋浪漫潭| 欧美午夜精品一区二区三区| 精品精品国产毛片在线看| 热久久美女精品天天吊色| 欧美视频一区在线观看| 国产在线乱码一区二区三区| 91美女在线| 日韩av综合在线观看| 国产精品丝袜久久久久久不卡| 亚洲精品国偷自产在线99热 | 性色av一区二区三区| 色偷偷偷综合中文字幕;dd| 欧美变态口味重另类| 精品捆绑美女sm三区| 91精品办公室少妇高潮对白| 欧美激情一区二区三区蜜桃视频 | 美女国产一区二区| 奶水喷射视频一区| 国产一区清纯| 99综合精品| 亚洲人成久久| 波多野结衣在线观看一区二区| 国产成人aa在线观看网站站| 多野结衣av一区| 婷婷电影在线观看| 婷婷久久免费视频| 国产成人一二片| 第九色区aⅴ天堂久久香| 国产精品天天看天天狠| 亚洲图片88| 欧美特级aaa| 日本中文字幕成人| 亚洲成人精品一区二区| 精久久久久久久久久久| 一本久久青青| 精品不卡在线| 欧美国产激情| 国产香蕉尹人视频在线| 欧美在线免费观看| 国产精品视频在线看| 亚洲三级av| 四虎国产成人永久精品免费| 欧美精品国产精品日韩精品| 久久久久久久性| 精品国产乱码一区二区三区| 免费在线a视频| 欧美日韩国产成人在线| 久久精品男人天堂av| 136福利精品导航| 激情亚洲综合网| 日本a级片电影一区二区| 一区二区激情视频| 91精品国产91久久综合| aaa在线观看| 亚洲精品视频一二三| 亚洲欧洲午夜一线一品| 国产91精品免费| 一区二区日韩| x88av蜜桃臀一区二区| 1卡2卡3卡精品视频| 欧美一区二区三区日韩视频| 日韩中文字幕不卡| 成人国产精品一区二区免费麻豆| 黑鬼大战白妞高潮喷白浆| 国产91成人在在线播放| 日韩欧美精品免费在线| 久久久精品午夜少妇| 超碰一区二区| 日韩中文字幕免费在线| 国产成人短视频| 制服丝袜亚洲色图| 国产精品一品视频| 日韩欧美美女在线观看| 高h视频在线| 久艹在线免费观看| 国产mv久久久| 欧美日韩高清一区二区不卡| 国产成人亚洲综合色影视| 亚洲免费专区| 超碰人人在线| 成人18免费入口| 久久99精品久久久久久久久久 | 亚洲图片欧美视频|