最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別

 更新時間:2023年03月01日 09:50:54   作者:Kevin騎熊貓打老虎  
IDEA 主界面右側(cè) Maven 標(biāo)簽欄有同樣的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在,到底選哪個?二者又有什么區(qū)別呢?下面小編給大家介紹下IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別,感興趣的朋友一起看看吧

IDEA maven 的 Lifecycle 與 Plugins

IDEA 主界面右側(cè) Maven 標(biāo)簽欄有同樣的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在。到底選哪個?二者又有什么區(qū)別呢?

經(jīng)過實驗,很多時候都是 Plugins中的命令報錯,而 Lifecycle 中的命令正常執(zhí)行。那么是不是說 Plugins 根本就沒有必要存在?存在了還混淆視聽?

要解答這個問題,首先要了解這兩處的命令到底有什么差異。而之前,要先了解 Maven 的生命周期、階段、插件和目標(biāo)之間的關(guān)系。

生命周期(Lifecycle)

Maven 的生命周期就是對所有構(gòu)建過程進(jìn)行抽象和統(tǒng)一,包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、站點生成等幾乎所有的構(gòu)建步驟。

Maven 內(nèi)置的三套生命周期:

  • Clean Lifecycle:做一些清理工作
    • pre-clean --> clean --> post-clean
  • Default LifeCycle:構(gòu)建的核心部分、編譯、測試、打包、部署等
    • validate --> compile --> test --> package --> integration-test --> verify --> install --> deploy
  • Site Lifecycle:生成項目報告、站點、發(fā)布站點
    • pre-site --> site --> post-site --> site-deploy

階段(Phase)

每套生命周期都是一組階段組成。

更多請參考官方文檔:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

Clean Lifecycle

  • pre-clean 執(zhí)行一些需要在 clean 之前完成的工作
  • clean 移除所有上一次構(gòu)建所生成的文件
  • post-clean 執(zhí)行一些需要在 clean 之后立即完成的工作

Default Lifecycle

  • validate 驗證項目正確且所需信息都可獲得
  • initialize 初始化構(gòu)建狀態(tài),如:設(shè)置屬性值、創(chuàng)建目錄
  • generate-sources 生成編譯過程中需要對導(dǎo)入進(jìn)行操作的源碼
  • process-sources 處理源碼,如:過濾值
  • generate-resources 為包中的導(dǎo)入依賴生成資源
  • process-resources 復(fù)制并處理資源文件至目標(biāo)目錄,準(zhǔn)備打包
  • compile 編譯項目的源代碼
  • process-classes 處理并測試源碼,如:過濾值
  • generate-test-sources
  • process-test-sources
  • generate-test-resources
  • process-test-resources 復(fù)制并處理資源文件,至目標(biāo)測試目錄
  • test-compile 編譯測試源碼
  • process-test-classes
  • test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署
  • prepare-package
  • package 接收編譯好的代碼,打包成可發(fā)布的格式,如:jar
  • pre-integration-test
  • integration-test
  • post-integration-test
  • verify
  • install

Site Lifecycle

  • pre-site 執(zhí)行一些需要在生成站點文檔之前完成的工作
  • site 生成項目的站點文檔
  • post-site 執(zhí)行一些需要在生成站點文檔之后完成的工作,并為部署做準(zhǔn)備
  • site-deploy 將生成的站點文檔部署到特定的服務(wù)器上

特點:階段在生命周期內(nèi)具有順序性,在執(zhí)行生命周期中某個階段時會先按順序執(zhí)行本生命周期當(dāng)前階段之前的所有階段,再執(zhí)行當(dāng)前階段。

例如,Clean Lifecycle有 3 個階段,按順序依次為:

  • pre-clean
  • clean
  • post-clean

則若執(zhí)行命令 mvn clean 實際按順序執(zhí)行了 Clean Lifecyclepre-cleanclean。

  • 那么如果只想執(zhí)行第 2 個階段呢,那就執(zhí)行命令 mvn clean:clean(這就是下面要提到的插件:目標(biāo)的執(zhí)行方式了)

插件(plugin)和目標(biāo)(goal)

一個階段由插件與目標(biāo)組成。

可以理解為:

  • 一個階段:一個步驟
  • 插件:打成 jar 包的 java 程序
  • 目標(biāo):插件程序的一個執(zhí)行參數(shù)

即向插件程序傳入一個執(zhí)行參數(shù)并執(zhí)行一次該插件程序,就等于進(jìn)行了一個步驟。

例子:

mvn compiler:compile

compiler 是插件,compile 是目標(biāo),compiler:compile是一個階段。

插件:目標(biāo) 表示一個特定任務(wù),階段是生命周期中的特定步驟。

有些階段聲明綁定的插件:目標(biāo)(即通過執(zhí)行相應(yīng)的插件:目標(biāo)來實現(xiàn)),有些階段沒有聲明綁定的插件:目標(biāo),是通過其他方式來實現(xiàn)的。

生命周期及包含階段,階段聲明綁定的插件:目標(biāo)如下:

1.Clean Lifecycle

順序階段插件:目標(biāo)
1pre-clean
2cleanclean:clean
3post-clean

2.Default Lifecycle

順序階段插件:目標(biāo)
1validate
2initialize
3generate-sources
4process-sources
5generate-resources
6process-resourcesresources:resources
7compilecompiler:compile
8process-classes
9generate-test-sources
10process-test-sources
11generate-test-resources
12process-test-resourcesresources:testResources
13test-compilecompiler:testCompile
14process-test-classes
15testsurefire:test
16prepare-package
17package
18pre-integration-test
19integration-test
20post-integration-test
21verify
22installinstall:install
23deploydeploy:deploy

3.Site Lifecycle

順序階段插件:目標(biāo)
1pre-site
2sitesite:site
3post-site
4site-deploysite:deploy

在 IDEA 中使用 Lifecycle 下的 install (等價于在命令行執(zhí)行 mvn install),代表執(zhí)行的是 生命周期 的一個階段(會自動先執(zhí)行之前的所有階段)。

如上所示,install 階段前有 21 個階段,即 mvn install 會先執(zhí)行前面的 21 個階段,之后再執(zhí)行 install 這個階段。

而作為對比,IDEA 中使用 Plugin 下的 install(等價于在命令行執(zhí)行 mvn install:install),代表執(zhí)行的是 插件:目標(biāo),它單獨執(zhí)行,不會先去執(zhí)行之前的 21 個階段。

另外,由于 生命周期 可以和 插件:目標(biāo) 一起執(zhí)行,所以可以先執(zhí)行 verify 生命周期(執(zhí)行 1~21 階段),再執(zhí)行 install:install(第 22 階段)。所以以下兩種寫法其實最終實現(xiàn)效果是等價的。

mvn install
mvn verify install:install

參考資料:

https://blog.csdn.net/gao_zhennan/article/details/89713407

https://www.cnblogs.com/zhaiqianfeng/p/4620138.html

補充:idea中maven的Plugins和 Lifecycle 區(qū)別

如果在Plugins里面安裝會出現(xiàn)問題,因為Plugins安裝,只會執(zhí)行安裝操作,而maven生命周期安裝之前的操作都不會執(zhí)行 ,就會安裝失敗。但是使用 Lifecycle中的install的話,在執(zhí)行instal生命階段之前的說有生命周期階段,包括(clean compiler test package)

在這里插入圖片描述

到此這篇關(guān)于IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別的文章就介紹到這了,更多相關(guān)maven 的 Lifecycle 和Plugins區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java快速排序的實現(xiàn)詳細(xì)代碼及通俗解釋

    Java快速排序的實現(xiàn)詳細(xì)代碼及通俗解釋

    這篇文章主要介紹了Java快速排序?qū)崿F(xiàn)的相關(guān)資料,快速排序是一種高效的排序算法,通過選擇一個基準(zhǔn)值將數(shù)組分成兩部分,左邊的元素比基準(zhǔn)值小,右邊的元素比基準(zhǔn)值大,然后遞歸地對這兩部分進(jìn)行排序,需要的朋友可以參考下
    2025-02-02
  • Java編碼摘要算法實例解析

    Java編碼摘要算法實例解析

    這篇文章主要介紹了Java編碼摘要算法實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • java日常練習(xí)題,每天進(jìn)步一點點(1)

    java日常練習(xí)題,每天進(jìn)步一點點(1)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Java身份證驗證方法實例詳解

    Java身份證驗證方法實例詳解

    這篇文章主要介紹了Java身份證驗證方法實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringMVC ViewResolver視圖解析器組件

    SpringMVC ViewResolver視圖解析器組件

    這篇文章主要介紹了SpringMVC ViewResolver視圖解析器組件,Spring MVC的視圖解析器 ViewResolver 是框架中一個重要的組件,用于將控制器返回的邏輯視圖名稱解析為具體的視圖實現(xiàn)對象,最終呈現(xiàn)給用戶的是具體的視圖實現(xiàn)
    2023-04-04
  • 如何在IDEA中查看依賴關(guān)系的方法步驟

    如何在IDEA中查看依賴關(guān)系的方法步驟

    這篇文章主要介紹了如何在IDEA中查看依賴關(guān)系的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java并發(fā)編程之LockSupport類詳解

    Java并發(fā)編程之LockSupport類詳解

    LockSupport是一種線程阻塞工具,它可以在線程內(nèi)任意位置讓線程阻塞.接下來就帶著大家詳細(xì)了解一下LockSupport類,,需要的朋友可以參考下
    2021-05-05
  • java中年月日的加減法使用示例

    java中年月日的加減法使用示例

    這篇文章主要介紹了java中年月日的加減法使用示例的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 圖文結(jié)合講解Java單例模式

    圖文結(jié)合講解Java單例模式

    這篇文章主要以圖文結(jié)合的方式為大家詳細(xì)介紹了Java單例模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Spring Security之LogoutSuccessHandler注銷成功操作方式

    Spring Security之LogoutSuccessHandler注銷成功操作方式

    這篇文章主要介紹了Spring Security之LogoutSuccessHandler注銷成功操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

鱼台县| 阿合奇县| 武冈市| 洪泽县| 隆德县| 睢宁县| 吉安市| 垣曲县| 武冈市| 昭苏县| 郁南县| 澄城县| 天镇县| 基隆市| 沈丘县| 富源县| 台中市| 镇宁| 寿阳县| 佛山市| 社旗县| 稻城县| 辰溪县| 石阡县| 青阳县| 黎城县| 柞水县| 沂源县| 萍乡市| 沧源| 登封市| 长海县| 故城县| 蕉岭县| 霸州市| 东明县| 象州县| 隆化县| 葫芦岛市| 彝良县| 油尖旺区|