偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

[[432395]]

大家好,我是冰河~~

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

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

插件坐標(biāo)定位

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

  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)識(shí)執(zhí)行的階段
  • goals:標(biāo)識(shí)執(zhí)行的目標(biāo)或功能
  • configuration:標(biāo)識(shí)執(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> 

常用插件的使用

通過(guò)命令執(zhí)行插件語(yǔ)法

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

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

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

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

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

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

  1. mvn dependency:tree 

其它常用插件

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

  1. mvn help:effective-pom 

(2)原型項(xiàng)目生成

  1. archetype:generate 

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

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

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

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

自定義Maven插件

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

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

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

(3)添加插件依賴

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

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

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

配置插件項(xiàng)目的pom.xml

這里,我直接跳過(guò)了Maven項(xiàng)目的創(chuàng)建,相信小伙伴們都會(huì)創(chuàng)建Maven項(xiàng)目,這里,我就不再贅述了,直接給出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插件的實(shí)現(xiàn)類

接下來(lái),我們來(lái)編寫(xiě)Maven插件的實(shí)現(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倉(cāng)庫(kù),如下所示。

  • 打包
  1. mvn clean package 
  • 安裝到本地倉(cāng)庫(kù)
  1. mvn clean install 

其他項(xiàng)目中引用自定義插件

如果需要在其他項(xiàng)目中使用我們自定義的Maven插件,則只需要?jiǎng)?chuàng)建一個(gè)Maven項(xiàng)目,在Maven項(xiàng)目的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ù)必須跟插件實(shí)現(xiàn)里面的屬性保持一致 --> 
  9.             <configuration> 
  10.                 <sex>男</sex> 
  11.                 <describe>冰河技術(shù)微信公眾號(hào)作者</describe> 
  12.             </configuration> 
  13.         </plugin> 
  14.     </plugins> 
  15. </build> 

好了,今天就到這兒吧,我是冰河,我們下期見(jiàn)!!

 

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

2022-04-18 19:02:53

chrome擴(kuò)展瀏覽器

2021-09-26 05:00:11

Vscode插件

2015-04-09 09:38:53

Tap4FunAWS手游

2021-05-14 13:30:17

Mybatis分表插件

2024-06-11 00:00:00

Java線程安全緩存組件

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

單元測(cè)試IDEA

2022-04-30 09:49:58

終端工具插件

2022-04-22 08:22:50

MVCCMySQLC++

2021-11-05 15:23:35

Karta插件安全工具

2020-04-16 08:27:51

IDEA插件編輯工具Java

2009-11-30 16:59:49

2022-02-23 14:21:20

Chrome插件瀏覽器

2022-03-01 11:38:51

RPC框架后端

2013-10-15 10:29:44

天天酷跑手游

2013-10-15 10:15:28

2022-06-08 19:08:32

AI押題作文
點(diǎn)贊
收藏

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