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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Maven入门指南⑦:Maven的生命周期和插件

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven入门指南⑦:Maven的生命周期和插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Maven入門指南⑦:Maven的生命周期和插件

  一個完整的項目構建過程通常包括清理、編譯、測試、打包、集成測試、驗證、部署等步驟,Maven從中抽取了一套完善的、易擴展的生命周期。Maven的生命周期是抽象的,其中的具體任務都交由插件來完成。Maven為大多數構建任務編寫并綁定了默認的插件,如針對編譯的插件:maven-compiler-plugin。用戶也可自行配置或編寫插件。

1 . 三套生命周期

  Maven定義了三套生命周期:clean、default、site,每個生命周期都包含了一些階段(phase)。三套生命周期相互獨立,但各個生命周期中的phase卻是有順序的,且后面的phase依賴于前面的phase。執行某個phase時,其前面的phase會依順序執行,但不會觸發另外兩套生命周期中的任何phase。

1 . 1 clean生命周期

  1. pre-clean ? ?:執行清理前的工作;
  2. clean ? ?:清理上一次構建生成的所有文件;
  3. post-clean ? ?:執行清理后的工作

1 . 2 default生命周期

default生命周期是最核心的,它包含了構建項目時真正需要執行的所有步驟。

  1. validate
  2. initialize
  3. generate-sources
  4. process-sources
  5. generate-resources
  6. process-resources ? ?:復制和處理資源文件到target目錄,準備打包;
  7. compile ? ?:編譯項目的源代碼;
  8. process-classes
  9. generate-test-sources
  10. process-test-sources
  11. generate-test-resources
  12. process-test-resources
  13. test-compile ? ?:編譯測試源代碼;
  14. process-test-classes
  15. test ? ?:運行測試代碼;
  16. prepare-package
  17. package ? ?:打包成jar或者war或者其他格式的分發包;
  18. pre-integration-test
  19. integration-test
  20. post-integration-test
  21. verify
  22. install ? ?:將打好的包安裝到本地倉庫,供其他項目使用;
  23. deploy ? ?:將打好的包安裝到遠程倉庫,供其他項目使用;

1 . 3 site生命周期

  1. pre-site
  2. site ? ?:生成項目的站點文檔;
  3. post-site
  4. site-deploy ? ?:發布生成的站點文檔

2 . Maven的插件

Maven的核心文件很小,主要的任務都是由插件來完成。定位到:%本地倉庫%\org\apache\maven\plugins,可以看到一些下載好的插件:

Maven官網上有更詳細的官方插件列表:

2 . 1 插件的目標(Plugin Goals)

一個插件通常可以完成多個任務,每一個任務就叫做插件的一個目標。如執行mvn install命令時,調用的插件和執行的插件目標如下:

每個插件都有哪些個目標,官方文檔有更詳細的說明:Maven Plugins

3 . 將插件綁定到生命周期

  Maven的生命周期是抽象的,實際需要插件來完成任務,這一過程是通過將插件的目標(goal)綁定到生命周期的具體階段(phase)來完成的。如:將maven-compiler-plugin插件的compile目標綁定到default生命周期的compile階段,完成項目的源代碼編譯:

3 . 1 內置的綁定

  Maven對一些生命周期的階段(phase)默認綁定了插件目標,因為不同的項目有jar、war、pom等不同的打包方式,因此對應的有不同的綁定關系,其中針對default生命周期的jar包打包方式的綁定關系如下:

第二列中,冒號后面即是綁定的插件目標,冒號前面是插件的前綴(prefix),是配置和使用插件的一種簡化方式。Plugin Prefix

3 . 2 自定義綁定

  用戶可以根據需要將任何插件目標綁定到任何生命周期的階段,如:將maven-source-plugin的jar-no-fork目標綁定到default生命周期的package階段,這樣,以后在執行mvn package命令打包項目時,在package階段之后會執行源代碼打包,生成如:ehcache-core-2.5.0-sources.jar形式的源碼包。

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><id>attach-source</id><phase>package</phase><!-- 要綁定到的生命周期的階段 --><goals><goal>jar-no-fork</goal><!-- 要綁定的插件的目標 --></goals></execution></executions></plugin></plugins>……
</build>

4 . 配置插件

Maven插件高度易擴展,可以方便的進行自定義配置。如:配置maven-compiler-plugin插件編譯源代碼的JDK版本為1.7:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target></configuration>
</plugin>

也可以對插件的各個目標進行更具體的配置。Configuring Plug-ins

5 . 插件倉庫

跟其他構件一樣,插件也是根據坐標存儲在Maven倉庫中。超級POM中Maven配置的默認插件遠程倉庫如下:

<pluginRepositories><pluginRepository><id>central</id><name>Central Repository</name><url>http://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots><releases><updatePolicy>never</updatePolicy></releases></pluginRepository>
</pluginRepositories>

?

?轉自:https://www.cnblogs.com/luotaoyeah/p/3819001.html

總結

以上是生活随笔為你收集整理的Maven入门指南⑦:Maven的生命周期和插件的全部內容,希望文章能夠幫你解決所遇到的問題。

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