天天看點

maven-生命周期與插件1. 生命周期與插件建構

文章目錄

  • 1. 生命周期與插件建構
    • 1.1 生命周期
      • 1.1.1 clean生命周期
      • 1.1.2 defau建構生命周期
      • 1.1.3 site建構生命周期
    • 1.2 插件
      • 通過插件可以自定義其他功能

1. 生命周期與插件建構

1.1 生命周期

  • 項目建構生命周期

    Maven建構生命周期描述的是一次建構過程經曆經曆了多少個事件

  • Maven對項目建構的生命周期劃分為3套
    • clean:清理工作
    • default:核心工作,例如編譯,測試,打包,部署等
    • site:産生報告,釋出站點等

1.1.1 clean生命周期

  • pre-clean 執行一些需要在clean之前完成的工作
  • clean 移除所有上一次建構生成的檔案
  • post-clean 執行一些需要在clean之後立刻完成的工作

1.1.2 defau建構生命周期

從上到下按順序執行,例;執行 test 時,test以上的都會執行

  • validate(校驗) 校驗項目是否正确并且所有必要的資訊可以完成項目的建構過程。
  • initialize(初始化) 初始化建構狀态,比如設定屬性值。
  • generate-sources(生成源代碼) 生成包含在編譯階段中的任何源代碼。
  • process-sources(處理源代碼) 處理源代碼,比如說,過濾任意值。
  • generate-resources(生成資源檔案) 生成将會包含在項目包中的資源檔案。
  • process-resources (處理資源檔案) 複制和處理資源到目标目錄,為打包階段最好準備。
  • compile(編譯) 編譯項目的源代碼。
  • process-classes(處理類檔案) 處理編譯生成的檔案,比如說對Java class檔案做位元組碼改善優化。
  • generate-test-sources(生成測試源代碼) 生成包含在編譯階段中的任何測試源代碼。
  • process-test-sources(處理測試源代碼) 處理測試源代碼,比如說,過濾任意值。
  • generate-test-resources(生成測試資源檔案) 為測試建立資源檔案。
  • process-test-resources(處理測試資源檔案) 複制和處理測試資源到目标目錄。
  • test-compile(編譯測試源碼) 編譯測試源代碼到測試目标目錄.
  • process-test-classes(處理測試類檔案) 處理測試源碼編譯生成的檔案。
  • test(測試) 使用合适的單元測試架構運作測試(Juint是其中之一)。
  • prepare-package(準備打包) 在實際打包之前,執行任何的必要的操作為打包做準備。
  • package(打包) 将編譯後的代碼打包成可分發格式的檔案,比如JAR、WAR或者EAR檔案。
  • pre-integration-test(內建測試前) 在執行內建測試前進行必要的動作。比如說,搭建需要的環境。
  • integration-test(內建測試) 處理和部署項目到可以運作內建測試環境中。
  • post-integration-test(內建測試後) 在執行內建測試完成後進行必要的動作。比如說,清理內建測試環境。
  • verify (驗證) 運作任意的檢查來驗證項目包有效且達到品質标準。
  • install(安裝) 安裝項目包到本地倉庫,這樣項目包可以用作其他本地項目的依賴。
  • deploy(部署) 将最終的項目包複制到遠端倉庫中與其他開發者和項目共享

1.1.3 site建構生命周期

  • pre-site 執行一些需要在生成站點文檔之前完成的工作
  • site 生成項目的站點文檔
  • post-site 執行一些需要在生成站點文檔之後完成的工作,并且為部署做準備
  • site-deploy 将生成的站點文檔部署到特定的伺服器

1.2 插件

  • 插件與生命周期内的階段綁定,在執行到對應生命周期時執行對應的插件功能預設
  • maven在各個生命周期上綁定有預設的功能
  • 通過插件可以自定義其他功能

通過插件可以自定義其他功能

在generate-test-resources生命周期執行,對源碼進行jar打包

<!--建構-->
<build>
  <!--插件-->
  <plugins>
    <!--具體插件-->
    <plugin>
      <!--坐标-->
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.2.1</version>
      
      <!--執行-->
      <executions>
        <execution>
          <!--對源碼進行jar打包-->
          <goals>
            <goal>jar</goal>
          </goals>
          <!--在generate-test-resources生命周期執行-->
          <phase>generate-test-resources</phase>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>