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 將下載該外掛並開始處理。

廣告
© . All rights reserved.