Maven插件

什么是 Maven 插件?
Maven 實際上是一個依賴插件執(zhí)行的框架,每個任務(wù)實際上是由插件完成。Maven 插件通常被用來:

  • 創(chuàng)建 jar 文件
  • 創(chuàng)建 war 文件
  • 編譯代碼文件
  • 代碼單元測試
  • 創(chuàng)建工程文檔
  • 創(chuàng)建工程報告
    插件通常提供了一個目標(biāo)的集合,并且可以使用下面的語法執(zhí)行:
mvn [plugin-name]:[goal-name]

例如,一個 Java 工程可以使用 maven-compiler-plugin 的 compile-goal 編譯,使用以下命令:

mvn compiler:compile

插件類型

Maven 提供了下面兩種類型的插件:

類型 描述
Build plugins 在構(gòu)建時執(zhí)行,并在 pom.xml 的 元素中配置。
Reporting plugins 在網(wǎng)站生成過程中執(zhí)行,并在 pom.xml 的 元素中配置。

下面是一些常用插件的列表:

插件 描述
clean 構(gòu)建之后清理目標(biāo)文件。刪除目標(biāo)目錄。
compiler 編譯 Java 源文件。
surefile 運行 JUnit 單元測試。創(chuàng)建測試報告。
jar 從當(dāng)前工程中構(gòu)建 JAR 文件。
war 從當(dāng)前工程中構(gòu)建 WAR 文件。
javadoc 為工程生成 Javadoc。
antrun 從構(gòu)建過程的任意一個階段中運行一個 ant 任務(wù)的集合。

例子
我們已經(jīng)在我們的例子中大量使用了 maven-antrun-plugin 來輸出數(shù)據(jù)到控制臺上。讓我們用一種更好的方式理解這部分內(nèi)容,在 d:\MVN\project 目錄下創(chuàng)建一個 pom.xml 文件。

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
   <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-antrun-plugin</artifactId>
   <version>1.1</version>
   <executions>
      <execution>
         <id>id.clean</id>
         <phase>clean</phase>
         <goals>
            <goal>run</goal>
         </goals>
         <configuration>
            <tasks>
               <echo>clean phase</echo>
            </tasks>
         </configuration>
      </execution>     
   </executions>
   </plugin>
</plugins>
</build>
</project>

接下來,打開命令終端跳轉(zhuǎn)到 pom.xml 所在的目錄,并執(zhí)行下面的 mvn 命令。

D:\MVN\project>mvn clean

Maven 將開始處理并顯示 clean 生命周期的 clean 階段。

[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.companyname.projectgroup:project >----------------
[INFO] Building project 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ project ---
[INFO]
[INFO] --- maven-antrun-plugin:1.1:run (id.clean) @ project ---
[INFO] Executing tasks
     [echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.473 s
[INFO] Finished at: 2018-04-27T14:31:10+08:00
[INFO] ------------------------------------------------------------------------

上面的例子展示了以下關(guān)鍵概念:

  • 插件是在 pom.xml 中使用 plugins 元素定義的。
  • 每個插件可以有多個目標(biāo)。
  • 你可以定義階段,插件會使用它的 phase 元素開始處理。我們已經(jīng)使用了 clean 階段。
  • 你可以通過綁定到插件的目標(biāo)的方式來配置要執(zhí)行的任務(wù)。我們已經(jīng)綁定了 echo 任務(wù)到 maven-antrun-plugin 的 run 目標(biāo)。
  • 就是這樣,Maven 將處理剩下的事情。它將下載本地倉庫中獲取不到的插件,并開始處理。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 經(jīng)過Maven生命周期的學(xué)習(xí),我們知道在Maven core中僅僅定義了抽象的生命周期,具體的實現(xiàn)是由插件完成的,...
    SonyaBaby閱讀 1,397評論 0 3
  • 轉(zhuǎn)自:http://www.cnblogs.com/crazy-fox/archive/2012/02/09/23...
    晴天哥_王志閱讀 2,412評論 2 27
  • 我們都知道Maven本質(zhì)上是一個插件框架,它的核心并不執(zhí)行任何具體的構(gòu)建任務(wù),所有這些任務(wù)都交給插件來完成,例如編...
    付鵬丶閱讀 1,686評論 0 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,500評論 19 139
  • 現(xiàn)在的小孩子越來越喜歡寫小說那些胡編亂造這類的,小編一個朋友特別喜歡寫小說,不過沒多少人看,于是小編決定,...
    江鳩閱讀 931評論 0 1

友情鏈接更多精彩內(nèi)容