日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven的生命周期和核心插件的功能

發布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?。這里僅列舉幾個常用的插件及其配置參數:

  • clean插件?
    只包含一個goal叫做?clean:clean?,負責清理構建時候創建的文件。 默認清理的位置是如下幾個變量指定的路徑project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, and project.reporting.outputDirectory?。
  • compiler插件?
    包含2個goal,分別是?compiler:compile?和?compiler:testCompile?。可以到這里查看兩者的具體參數設置:compile,?testCompile?。
  • surefire插件?
    運行單元測試用例的插件,并且能夠生成報表。包含一個goal為?surefire:test?。主要參數testSourceDirectory用來指定測試用例目錄,參考完整用法幫助
  • jar?
    負責將工程輸出打包到jar文件中。包含兩個goal,分別是?jar:jar?,?jar:test-jar?。兩個goal負責從classesDirectory或testClassesDirectory中獲取所有資源,然后輸出jar文件到outputDirectory中。
  • war?
    負責打包成war文件。常用goal有?war:war?,負責從warSourceDirectory(默認${basedir}/src/main/webapp)打包所有資源到outputDirectory中。
  • resources?
    負責復制各種資源文件,常用goal有?resources:resources?,負責將資源文件復制到outputDirectory中,默認為${project.build.outputDirectory}。
  • install?
    負責將項目輸出(install:install)或者某個指定的文件(install:install-file)加入到本機庫%USERPROFILE%/.m2/repository中。可以用?install:help?尋求幫助。
  • deploy?
    負責將項目輸出(deploy:deploy)或者某個指定的文件(deploy:deploy-file)加入到公司庫中。
  • site?
    將工程所有文檔生成網站,生成的網站界面默認和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的生命周期和核心插件的功能的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。