前言
終于來到了Maven的插件開發,其實Maven的插件并沒有想象的那么難,剛開始講Maven基礎的時候就演示了一下JDK是如何打包的,Maven打包只是在JDK打包上封裝了一層而已,Maven也支持自定義插件開發
創建
我們先使用quickstart原型創建出一個Maven項目,在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有哪幾種方式,大家可以各自去在下的上篇博客看看
自定義插件
先創建一個類CleanTestPlugin,繼承AbstractMojo,這個抽象類是Maven插件開發需實現的一個類,然后實現里面的execute方法
然后打包并且安裝到本地倉庫上(命令:mvn clean install)
安裝好后,可以在命令行中輸入:
就能看到打印的日志了。
如果想要在插件中打包時傳入參數,也是可以支持,這里就寫出幾個示例:
然后在其他項目引入改插件的時候,綁定好參數即可
由于只綁定了clean的生命周期,所以只需執行mvn clean即可
總結
自定義插件基本結束啦,下篇講講Maven原型(archetype)吧。
是不是看完后,感覺沒啥難的,現在回過頭來看一下Maven自帶的maven-jar-plugin插件,其實沒有想象中那么難,只是結構比較復雜。
看完這個之后,大家也可以去看一下SpringBoot的插件源代碼,這個插件就開發的比較厲害了,如果比較細心的任就會發現,使用這個插件打包出來的可執行包,執行的類并不是執行的類,而是通過SpringBoot同一的啟動類去啟動 。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/qq_40874285/article/details/120384442