- Maven 教程
- Maven - 首頁
- Maven - 概述
- Maven - 環境設定
- Maven - POM
- Maven - 構建生命週期
- Maven - 構建配置檔案
- Maven - 倉庫
- Maven - 外掛
- Maven - 建立專案
- Maven - 構建和測試專案
- Maven - 外部依賴
- Maven - 專案文件
- Maven - 專案模板
- Maven - 快照
- Maven - 構建自動化
- Maven - 管理依賴
- Maven - 部署自動化
- Maven - Web應用程式
- Maven - Eclipse IDE
- Maven - NetBeans
- Maven - IntelliJ IDEA
- Maven 有用資源
- Maven - 問答
- Maven - 快速指南
- Maven - 有用資源
- Maven - 討論
Maven - 外掛
什麼是 Maven 外掛?
Maven實際上是一個外掛執行框架,其中每個任務實際上都是由外掛完成的。Maven 外掛通常用於:
- 建立 jar 檔案
- 建立 war 檔案
- 編譯程式碼檔案
- 程式碼單元測試
- 建立專案文件
- 建立專案報告
外掛通常提供一組目標,可以使用以下語法執行:
mvn [plugin-name]:[goal-name]
例如,可以使用 maven-compiler-plugin 的 compile 目標透過執行以下命令來編譯 Java 專案。
mvn compiler:compile
外掛型別
Maven 提供以下兩種型別的外掛:
| 序號 | 型別和描述 |
|---|---|
| 1 | 構建外掛 它們在構建過程中執行,應在 pom.xml 的 |
| 2 | 報表外掛 它們在站點生成過程中執行,應在 pom.xml 的 |
以下是幾個常用外掛的列表:
| 序號 | 外掛和描述 |
|---|---|
| 1 | clean 清理構建後的目標。刪除 target 目錄。 |
| 2 | compiler 編譯 Java 原始檔。 |
| 3 | surefire 執行 JUnit 單元測試。建立測試報告。 |
| 4 | jar 從當前專案構建 JAR 檔案。 |
| 5 | war 從當前專案構建 WAR 檔案。 |
| 6 | javadoc 生成專案的 Javadoc。 |
| 7 | antrun 從構建的任何階段執行一組 ant 任務。 |
示例
在我們的示例中,我們廣泛使用了 **maven-antrun-plugin** 來列印控制檯資料。請參考構建配置檔案章節。讓我們更好地理解它,並在 C:\MVN\project 資料夾中建立一個 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>
接下來,開啟命令控制檯並轉到包含 pom.xml 的資料夾,然後執行以下 **mvn** 命令。
C:\MVN\project>mvn clean
Maven 將開始處理並顯示 clean 生命週期中的 clean 階段。
C:\MVN>mvn 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] Deleting C:\MVN\target
[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: 1.266 s
[INFO] Finished at: 2021-12-13T13:58:10+05:30
[INFO] ------------------------------------------------------------------------
C:\MVN>
上面的例子說明了以下關鍵概念:
外掛在 pom.xml 中使用 plugins 元素指定。
每個外掛可以有多個目標。
可以使用 phase 元素定義外掛應從哪個階段開始處理。我們使用了 **clean** 階段。
可以透過將任務繫結到外掛的目標來配置要執行的任務。我們將 **echo** 任務繫結到 maven-antrun-plugin 的 **run** 目標。
如果本地倉庫中沒有外掛,Maven 將下載該外掛並開始處理。