maven的生命周期和核心插件的功能
生活随笔
收集整理的這篇文章主要介紹了
maven的生命周期和核心插件的功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
maven預定義了許多的階段(phase),每個插件都依附于這些階段,并且在進入某個階段的時候,調用運行這些相關插件的功能。我們先來看完整的maven生命周期:
| validate | 驗證項目是否正確,以及所有為了完整構建必要的信息是否可用 |
| generate-sources | 生成所有需要包含在編譯過程中的源代碼 |
| process-sources | 處理源代碼,比如過濾一些值 |
| generate-resources | 生成所有需要包含在打包過程中的資源文件 |
| process-resources | 復制并處理資源文件至目標目錄,準備打包 |
| compile | 編譯項目的源代碼 |
| process-classes | 后處理編譯生成的文件,例如對Java類進行字節碼增強(bytecode enhancement) |
| generate-test-sources | 生成所有包含在測試編譯過程中的測試源碼 |
| process-test-sources | 處理測試源碼,比如過濾一些值 |
| generate-test-resources | 生成測試需要的資源文件 |
| process-test-resources | 復制并處理測試資源文件至測試目標目錄 |
| test-compile | 編譯測試源碼至測試目標目錄 |
| test | 使用合適的單元測試框架運行測試。這些測試應該不需要代碼被打包或發布 |
| prepare-package | 在真正的打包之前,執行一些準備打包必要的操作。這通常會產生一個包的展開的處理過的版本(將會在Maven 2.1+中實現) |
| package | 將編譯好的代碼打包成可分發的格式,如JAR,WAR,或者EAR |
| pre-integration-test | 執行一些在集成測試運行之前需要的動作。如建立集成測試需要的環境 |
| integration-test | 如果有必要的話,處理包并發布至集成測試可以運行的環境 |
| post-integration-test | 執行一些在集成測試運行之后需要的動作。如清理集成測試環境。 |
| verify | 執行所有檢查,驗證包是有效的,符合質量規范 |
| install | 安裝包至本地倉庫,以備本地的其它項目作為依賴使用 |
| deploy | 復制最終的包至遠程倉庫,共享給其它開發人員和項目(通常和一次正式的發布相關) |
maven核心的插件列表可以參考?http://maven.apache.org/plugins/index.html?。這里僅列舉幾個常用的插件及其配置參數:
只包含一個goal叫做?clean:clean?,負責清理構建時候創建的文件。 默認清理的位置是如下幾個變量指定的路徑project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, and project.reporting.outputDirectory?。
包含2個goal,分別是?compiler:compile?和?compiler:testCompile?。可以到這里查看兩者的具體參數設置:compile,?testCompile?。
運行單元測試用例的插件,并且能夠生成報表。包含一個goal為?surefire:test?。主要參數testSourceDirectory用來指定測試用例目錄,參考完整用法幫助
負責將工程輸出打包到jar文件中。包含兩個goal,分別是?jar:jar?,?jar:test-jar?。兩個goal負責從classesDirectory或testClassesDirectory中獲取所有資源,然后輸出jar文件到outputDirectory中。
負責打包成war文件。常用goal有?war:war?,負責從warSourceDirectory(默認${basedir}/src/main/webapp)打包所有資源到outputDirectory中。
負責復制各種資源文件,常用goal有?resources:resources?,負責將資源文件復制到outputDirectory中,默認為${project.build.outputDirectory}。
負責將項目輸出(install:install)或者某個指定的文件(install:install-file)加入到本機庫%USERPROFILE%/.m2/repository中。可以用?install:help?尋求幫助。
負責將項目輸出(deploy:deploy)或者某個指定的文件(deploy:deploy-file)加入到公司庫中。
將工程所有文檔生成網站,生成的網站界面默認和apache的項目站點類似,但是其文檔用doxia格式寫的,目前不支持docbook,需要用其他插件配合才能支持。需要指出的是,在maven 2.x系列中和maven3.x的site命令處理是不同的,在舊版本中,用 mvn site 命令可以生成reporting節點中的所有報表,但是在maven3中,reporting過時了,要把這些內容作為 maven-site-plugin的configuration的內容才行。詳細內容可以參考http://www.wakaleo.com/blog/292-site-generation-in-maven-3?
如果直接執行 clean install,那么maven 先執行clean,然后默認執行resource, compiler ,test,package(如果maven 配置了resource 插件和 test插件),最后到install 。
總結
以上是生活随笔為你收集整理的maven的生命周期和核心插件的功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《真爱西游》火云洞副本心得
- 下一篇: 水星 MW4530R V1 无线路由器管