Maven系列學習(三)Maven生命週期和插件

Maven生命週期和插件apache

Maven另外的兩個核心概念就是生命週期和插件,Maven的生命週期都是抽象的,其實實際行爲都是由插件來完成的,生命週期和插件二者協同工做
maven

1.生命週期post

Maven的生命週期就是爲了對全部的構建過程進行抽象和統一,這個生命週期包含了項目的清理,初始化,編譯,測試,打包,集成測試,驗證,部署和站點生成等幾乎全部構建步驟,Maven的生命週期是抽象的,這意味着生命週期自己不作任何實際的工做,在Maven的設計中,實際的任務都是交給插件來完成的測試

一次構建(build):initialize--compile--test--package--integrationTest--deploy;ui

2.三套生命週期spa

Maven擁有三套互相獨立的生命週期,分別是clean,default和site.clean生命週期的目的是清理項目,default生命週期的目的是構建項目,而site生命週期的目的是創建項目站點,每一個生命週期包含一些階段(phase),並且是有順序的,而且後面的階段依賴前面的階段,而生命週期自己是獨立的插件

clean的生命週期的目的是清理項目,包含三個階段:pre-clean(清理前須要完成的工做),clean(清理上次構建的文件),post-clean(清理後須要完成的工做)命令行

default的生命週期定義真正構建時須要執行的全部步驟,它是全部生命週期中最核心的部分,其包含的階段以下:設計

validate--initialize--generate-source--process-source--generate-resources--process-resource--compile--process-classes--generate-test-sources--generate-test-resources--process-test-resource--test-compile--process-test-classes--test--prepare-package--package--pre-integraion-test-integration-test--post-integration-test--verify--install--deploycode

site生命週期的目的是創建和發佈項目站點,Maven能給予POM所包含的信息,自動生成一個友好的站點,該生命週期包含如下階段:

pre-site--site--post-site--site-deploy

3.命令行與生命週期

從命令行執行Maven任務的最主要方式就是調用Maven的生命週期階段:

(1). mvn clean:調用clean的生命週期

(2). mvn test:調用default生命階段的test階段,實際執行的階段爲default生命週期的從validate---到test的全部階段

(3). mvn clean install:該命令是調用clean生命週期和defualt生命週期的install階段,實際是pre-clean,clean,post-clean,和default生命週期的從validate到install的全部階段

(4). mvn clean deploy site-deploy:該命令我就不作過多解釋了

4.POM中插件全局配置

並非全部的插件參數都合適從命令行配置,有些參數的值從項目建立到項目發佈都不會改變,或者說不多改變,對於這種狀況,在POM文件中一次性配置就顯然比重複在命令行輸入要方便

用戶能夠在聲明插件的時候,對此插件進行一個全局的配置,也就是說全部說,全部該基於該插件目標的任務,都會使用這些配置 

<build>
    <plugins>
         <!-- 插件定義 -->
        <plugin>
            <groupId>org.apache.maven.plugins<groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
                <configuration>
                      <!-- 編譯1.8版本的源文件 -->
                    <source></source>
                          <!-- 生成與JVM 1.8 兼容的字節碼文件 -->
                    <target></target>
                </configuration>
        </plugin>
    </plugins>
</build>
        

5.插件綁定 

Maven的生命週期與插件互相綁定,用以完成實際的構建任務,具體而言,是生命週期階段與插件的目標互相綁定,以完成某個具體的構建任務,好比項目編譯這一任務,它對應了default生命週期的compile這一階段,而maven-compile-plugin這一插件的compile目標可以完成該任務,所以,將它們綁定,就能實現項目編譯的目的

相關文章
相關標籤/搜索