您好,登錄后才能下訂單哦!
小編給大家分享一下wed前端技術Maven插件如何獲取和配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Maven插件的獲取和配置
Maven 只是對項目的構建過程進行了統一的抽象定義和管理。至于每個階段由誰來做,Maven 自己不去實現,而是讓對應的插件去完成。這就是插件的作用。
比如 maven-compile-plugin 就可以完成在 compile 階段 Java 源代碼的編譯任務。
但是從插件本身來說,一個插件可以實現生命周期多個階段的任務,比如 maven-dependency-plugin 就可以實現十多個功能:分析項目的依賴功能;列出項目的依賴樹;分析依賴的來源等。
為方便指定執行插件的某個功能,將插件的每個功能叫目標。這樣就可以實現在哪個階段,執行哪個插件,達到哪個目標。比如“dependency:analyze”,表示 maven-dependency-plugin 的分析目標;“dependency:tree”表示 maven-dependency-plugin 列出依賴的目標。
插件同生命周期階段的綁定
前面介紹了插件的作用和目標,但是最終的目的是要將插件的功能集成到 Maven 生命周期的相關階段中去,讓 Maven 構建工程時自動調用插件完成指定的任務。
應如何讓 Maven 的生命周期同插件實現相互綁定,來完成實際的構建任務呢?
比如 maven-compile-plugin 插件的 compile 目標能完成編譯任務,而且 Maven 的 default 生命周期的 compile 階段,定義好要實現源代碼編譯。
那么用戶怎樣將 maven-compile-plugin 插件的 compile 目標綁定到 default 生命周期的 compile 階段,讓 Maven 構建項目到 compile 階段的時候,能自動執行插件的 compile 目標呢?
實現生命周期的階段同插件目標的綁定,一共有兩種方式:內置綁定和自定義綁定。
1. 內置綁定
為了讓用戶方便使用 Maven,少進行配置甚至不用配置,就需要用 Maven 構建項目。Maven 在安裝好后,自動為生命周期的主要階段綁定很多插件的目標。
當用戶通過命令或圖形界面執行生命周期的某個階段時,對應的插件目標就會自動執行,從而完成任務。
maven-clean-plugin 插件有個目標叫 clean,它的作用是刪除項目構建時產生的輸出目錄。maven-clean-plugin 的 clean 目標,默認就綁定在 clean 生命周期的 clean 階段。也就是說,當執行 mvn clean 時,Maven 在 clean 階段自動調用 maven-clean-plugin 的 clean 目標,刪除構建的輸出目錄。
同樣地,maven-site-plugin 插件有兩個目標:site 目標,用來生成項目站點;deploy 目標,用來將生成的站點發布到站點服務器上去。Maven 默認將 site 目標綁定在 site 生命周期的 site 階段;將 deploy 目標綁定在 site 生命周期的 site-deploy 階段。
default 生命周期就比較復雜了,不僅僅復雜在有那么多的階段,還復雜在 Java 可以打成不同的包(jar、war 和 ear 等)。不同的包在不同的階段是不一樣的綁定。
當然,也可以通過運行 Maven 命令,在命令提示信息中查看階段和插件目標的綁定。比如在 CMD 命令行窗口中輸入 Maven compile,可以查看到如圖1 日志。
根據日志,可以查看出 default-resources 階段綁定的是“maven-resources-plugin:2.6:resources”目標;default-compile 階段綁定的是“maven-compile-plugin:2.3.2:compile”目標。
2. 自定義綁定
除了 Maven 內置的綁定外,也可以指定在某個階段綁定某個插件的某個目標。這樣就使得 Maven 在構建項目時能執行更多的任務。比如,有時用戶希望在構建工程時能將源代碼打成 jar 包(安裝 JDK 的時候是可以選擇安裝 src.jar的,這樣可以學習 JDKAPI 的源代碼)。
這樣的任務,Maven 沒有內置綁定到生命周期的階段上。所以這就需要用戶自己配置了。maven-source-plugin 中有個 jar-no-forkmub,能將項目中的主代碼打成 jar 文件。這樣就可以將該目標綁定到 default 生命周期的指定階段,比如 verify 階段。
以上是“wed前端技術Maven插件如何獲取和配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。