Maven-06-核心概念 plugins and goals

這一篇要給大家講講 Maven 之所以能夠完成各種任務的關鍵元件:plugins  and  goals

我們在 Maven-03-建立第一個 Maven專案 裡一開始使用了一道指令來建立專案,

01

  • 其中的 archetype 就是 plugin 名稱, archetype plugin 讓我們可以依照既有的專案樣版來產生專案,或是由既有專案產生出樣版,以方便之後重複使用
  • generate 代表 goal 名稱,四個參數 groupId, artifactId, package, version 是要傳給 generate 這個 goal 的參數。

一個 Maven plugin 其實就是多組 goal 所集合而成的,goal 所代表的是一個任務,並且允許我們在執行時輸入參數,下列出幾個常用的 plugin

更多的 plugins 可參考 https://maven.apache.org/plugins/maven-jar-plugin/

在了解了 plugin and goals 的定義之後,我們或許可以從另一個角度來解釋 maven:maven 本身是一個具有基本功能的核心平台,它只知道如何解析mvn指令、解析POM、下載所需的plugins並依照設定執行,所以像是對程式碼進行編繹、或打包專案檔,這些事情就會交由plugins 來完成。

我們已經知道了 maven plugins 可以完成開發專案時的各項任務,從以上範例大致也可以看出要產生一個jar檔需經過哪些步驟,但是如果每次都要依照這些步驟一個一個執行,恐怕會影響開發人員的工作效率。因此,下一篇將給大家介紹 maven 另一個核心概念 “lifecycle”,讓我們透過簡短的指令操作,就可以完成一連串相關的任務!

Facebook Comments