Maven-Maven 生命週期

  1. 生命週期定義:
    生命週期抽象了構建的各個步驟, 定義了它們的次序, 但沒有提供具體的實現. 每個構建步驟可以綁定一個或者多個插件行爲.

  2. 聲明週期:
    生命週期由階段組成(phase), 這些階段是有順序的, 並且後面的階段依賴於前面的階段, 用戶和 Maven 最直接的交互方式就是調用這些聲明週期階段.

    • clean 生命週期: 目的是清理項目, 包含: pre-clean, clean, post-clean 三個階段. 調用後面的階段會導致該階段前面的階段也會被執行.
    • default 生命週期:
      • validate
      • initialize
      • generate-sources
      • process-sources: 處理項目主資源文件. 一般來說, 是對 src/main/resources目錄的內容進行變量替換等工作後, 複製到項目輸出的主 classpath 目錄中.
      • generate-resources
      • process-resources
      • compile: 編譯項目的主代碼. 一般來說, 是編譯 src/main/java 目錄下的 Java 文件至項目輸出的主 classpath 目錄中.
      • process-classes
      • generate-test-sources
      • process-test-sources: 處理項目測試資源文件. 一般來說, 是對 src/test/resources 目錄的內容進行變量替換等工作後, 複製到項目輸出的測試 classpath 目錄中.
      • generate-test-resources
      • process-test-resources
      • test-compile: 編譯項目的測試代碼. 一般來說, 是編譯 src/test/java 目錄下的 Java 文件至項目輸出的測試 classpath 目錄中.
      • process-test-classes
      • test: 使用單元測試框架運行測試, 測試代碼不會被打包或者部署.
      • prepare-package
      • package: 接受編譯好的代碼, 打包成可發佈的格式, 如 JAR.
      • pre-integration-test
      • integration-test
      • post-integration-test
      • verify
      • install: 將包安裝到 Maven 本地倉庫, 供本地其它 Maven 項目使用.
      • deploy: 將最終的包複製到遠程倉庫中, 供其它開發人員和 Maven 項目使用.
    • site 生命週期: 建立和發佈項目站點, Maven 能夠基於 pom 所包含的信息, 自動生成一個友好的站點, 方便團隊交流和發佈項目信息.
      • pre-site: 執行一些在生成項目站點之前需要完成的工作.
      • site: 生成項目站點文檔.
      • post-site: 執行一些在生成項目站點之後需要完成的工作.
      • site-deploy: 將生成的項目站點發布到服務器上.
  3. 插件綁定:

    • 內置綁定: 主要的生命週期階段都綁定了很多插件的目標.
    • 自定義綁定: 創建項目的源碼 jar 包.
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
            <execution>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                    <goal>jar-no-fork</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
  4. 插件配置:

    • 命令行插件配置: 使用 -D 參數. 例如跳過測試: mvn install -Dmaven.test.skip = true
    • pox 全局配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.1</version>
        <configuration>
            <source>1.5</source>
            <target>1.5</target>
        </configuration>
    </plugin>
    
  5. 參考:
    [1] : Maven 實戰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章