前言
終于來到了Maven的插件開發(fā),其實(shí)Maven的插件并沒有想象的那么難,剛開始講Maven基礎(chǔ)的時(shí)候就演示了一下JDK是如何打包的,Maven打包只是在JDK打包上封裝了一層而已,Maven也支持自定義插件開發(fā)
創(chuàng)建
我們先使用quickstart原型創(chuàng)建出一個(gè)Maven項(xiàng)目,在pom.xml里面引入一下依賴:
<dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <scope>provided</scope> <version>3.0</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.4</version> <scope>provided</scope> </dependency>
添加好依賴后,需修改packaging打包方式:
<packaging>maven-plugin</packaging>
之前也講過packaging有哪幾種方式,大家可以各自去在下的上篇博客看看
自定義插件
先創(chuàng)建一個(gè)類CleanTestPlugin,繼承AbstractMojo,這個(gè)抽象類是Maven插件開發(fā)需實(shí)現(xiàn)的一個(gè)類,然后實(shí)現(xiàn)里面的execute方法
然后打包并且安裝到本地倉庫上(命令:mvn clean install)
安裝好后,可以在命令行中輸入:
就能看到打印的日志了。
如果想要在插件中打包時(shí)傳入?yún)?shù),也是可以支持,這里就寫出幾個(gè)示例:
然后在其他項(xiàng)目引入改插件的時(shí)候,綁定好參數(shù)即可
由于只綁定了clean的生命周期,所以只需執(zhí)行mvn clean即可
總結(jié)
自定義插件基本結(jié)束啦,下篇講講Maven原型(archetype)吧。
是不是看完后,感覺沒啥難的,現(xiàn)在回過頭來看一下Maven自帶的maven-jar-plugin插件,其實(shí)沒有想象中那么難,只是結(jié)構(gòu)比較復(fù)雜。
看完這個(gè)之后,大家也可以去看一下SpringBoot的插件源代碼,這個(gè)插件就開發(fā)的比較厲害了,如果比較細(xì)心的任就會(huì)發(fā)現(xiàn),使用這個(gè)插件打包出來的可執(zhí)行包,執(zhí)行的類并不是執(zhí)行的類,而是通過SpringBoot同一的啟動(dòng)類去啟動(dòng) 。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/qq_40874285/article/details/120384442