鍍金池/ 教程/ Java/ Maven插件
使用Maven構(gòu)建項目
定制庫到Maven本地資源庫
Maven安裝配置
Maven依賴管理
使用Maven創(chuàng)建Web應(yīng)用程序項目
Maven項目文檔
Maven存儲庫
使用Maven創(chuàng)建Java項目
Maven Web應(yīng)用
Maven創(chuàng)建Java項目
部署基于Maven的war文件到Tomcat
定制庫到Maven本地資源庫
Maven POM
Maven啟用代理訪問
轉(zhuǎn)換基于Maven的Java項目支持Eclipse IDE
Maven本地資源庫
Maven項目模板
Maven添加遠程倉庫
如何從Maven遠程存儲庫下載?
Maven插件
Maven依賴機制
Maven 構(gòu)建生命周期
將項目安裝到Maven本地資源庫
使用Maven模板創(chuàng)建項目
Maven構(gòu)建自動化
Maven中央存儲庫
Eclipse創(chuàng)建一個Maven Web項目
部署基于Maven的war文件到Tomcat
使用Maven運行單元測試
轉(zhuǎn)換基于Maven的Java項目支持Eclipse IDE
轉(zhuǎn)換基于Maven的Web應(yīng)用程序支持Eclipse IDE
NetBeans IDE集成Maven
Maven中央存儲庫
使用Maven清理項目
使用Maven構(gòu)建和測試Java項目
Maven本地資源庫
Maven依賴機制
使用Maven創(chuàng)建Web應(yīng)用程序項目
使用“mvn site-deploy”部署站點(WebDAV例子)
Maven快照
使用Maven構(gòu)建項目
Maven教程
Maven POM
生成基于Maven的項目文檔站點
使用Maven運行單元測試
Maven 構(gòu)建配置文件
Maven外部依賴
將項目安裝到Maven本地資源庫
Eclipse構(gòu)建Maven項目
啟用Maven的代理訪問
生成基于Maven的項目文檔站點
使用Maven創(chuàng)建Java項目
使用“mvn site-deploy”部署站點(WebDAV例子)
使用Maven模板創(chuàng)建項目
如何從Maven遠程存儲庫下載?
使用Maven清理項目
Eclispe IDE集成Maven
Maven自動化部署
轉(zhuǎn)換基于Maven的Web應(yīng)用程序支持Eclipse IDE

Maven插件

什么是 Maven 的插件?

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

  • 創(chuàng)建 jar 文件

  • 創(chuàng)建 war 文件 

  • 編譯代碼文件

  • 進行代碼單元測試

  • 創(chuàng)建項目文檔

  • 創(chuàng)建項目報告

一個插件通常提供了一組目標,可使用以下語法來執(zhí)行:

mvn [plugin-name]:[goal-name]

例如,一個 Java 項目可以使用 Maven 編譯器插件來編譯目標,通過運行以下命令編譯

mvn compiler:compile

插件類型

Maven 提供以下兩種類型插件:

類型 描述
構(gòu)建插件 在生成過程中執(zhí)行,并在 pom.xml 中的<build/> 元素進行配置
報告插件 在網(wǎng)站生成期間執(zhí)行,在 pom.xml 中的 <reporting/> 元素進行配置

以下是一些常見的插件列表:

插件 描述
clean 編譯后的清理目標,刪除目標目錄
compiler 編譯 Java 源文件
surefile 運行JUnit單元測試,創(chuàng)建測試報告
jar 從當(dāng)前項目構(gòu)建 JAR 文件
war 從當(dāng)前項目構(gòu)建 WAR 文件
javadoc 產(chǎn)生用于該項目的 Javadoc
antrun 從構(gòu)建所述的任何階段運行一組 Ant 任務(wù)

例子

我們使用 maven-antrun-plugin 插件在例子中來在控制臺打印數(shù)據(jù)。現(xiàn)在在 C:\MVN\project 文件夾 創(chuàng)建一個 pom.xml 文件,內(nèi)容如下: 

<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 命令。

C:\MVN\project>mvn clean

Maven 將開始處理并顯示清潔周期/階段,如下圖中輸出:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]    task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
     [echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] ------------------------------------------------------------------

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

  • 插件可在 pom.xml 使用的 plugin 元素來指定; 

  • 每個插件可以有多個目標;

  • 從插件應(yīng)使用它的相位元素開始處理定義階段。這里已經(jīng)使用 clean 階段;

  • 可以通過將它們綁定到插件的目標來執(zhí)行配置任務(wù)。這里已經(jīng)綁定 echo 任務(wù)到 maven-antrun-plugin 的運行目標;

  • 就這樣,Maven將處理其余部分。如果沒有可用的本地存儲庫,它會下載這個插件;