1. 程式人生 > 程式設計 >maven多個plugin相同phase的執行順序

maven多個plugin相同phase的執行順序

Maven是專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和文件的專案管理工具軟體。

maven多個plugin相同phase的執行順序

Maven是一個專案管理工具,它包含了一個專案物件模型 (Project Object Model),一組標準集合,一個專案生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來執行定義在生命週期階段(phase)中外掛(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的專案物件模型來描述你的專案,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)外掛。

Maven 有一個生命週期,當你執行 mvn install 的時候被呼叫。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命週期。遍歷生命週期旅途中的一個影響就是,Maven 運行了許多預設的外掛目標,這些目標完成了像編譯和建立一個 JAR 檔案這樣的工作。

此外,Maven能夠很方便的幫你管理專案報告,生成站點,管理JAR檔案,等等

對於maven進行專案構建時,我們會使用到外掛,對構建過程進行一些控制,加工,加密,重寫,依賴打包等工作,一般我們打包時會把phase定為package,意思是說,當進行package動作後,處理你的外掛。

多個相同phase的順序

當我們有多個plugin,並且相同phase時,有時需要考慮到順序問題,因為你的plugin可能會有某個其它plugin的結果的依賴,所以我們需要控制

<plugins>
 <plugin>
  <artifactId>maven-shade-plugin</artifactId>
  <executions>
   <execution>
    <phase>package</phase>
    <goals>
      <goal>shade</goal>
    </goals>
   </execution>
  </executions>
  </plugin>
  <plugin>
  <artifactId>classfinal-maven-plugin</artifactId>
  <executions>
   <execution>
    <phase>package</phase>
    <goals>
      <goal>shade</goal>
    </goals>
   </execution>
  </executions>
  </plugin>
</plugins>

如上面兩個外掛maven-shade-plugin和classfinal-maven-plugin都綁定了package階段,它們的執行順序是怎樣的呢?,答案很清晰:誰放在前面,誰先執行!

如圖:

maven多個plugin相同phase的執行順序

到此這篇關於maven多個plugin相同phase的執行順序的文章就介紹到這了,更多相關maven plugin phase執行順序內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!