乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Maven項(xiàng)目管理工具:MavenSNAPSHOT(快照)

       碼農(nóng)9527 2021-09-30

          我們知道,Maven項(xiàng)目第一構(gòu)建時(shí),會(huì)自動(dòng)從遠(yuǎn)程倉庫搜索依賴項(xiàng),并將其下載到本地倉庫中。當(dāng)項(xiàng)目再進(jìn)行構(gòu)建時(shí),會(huì)直接從本地倉庫搜索依賴項(xiàng)并引用,而不會(huì)再次向遠(yuǎn)程倉庫獲取。這樣的設(shè)計(jì)能夠避免項(xiàng)目每次構(gòu)建時(shí)都去遠(yuǎn)程倉庫下載依賴,減輕了網(wǎng)絡(luò)帶寬的壓力,但也帶來了問題。

      Maven項(xiàng)目管理工具:MavenSNAPSHOT(快照)

          大型的應(yīng)用軟件通常由多個(gè)功能模塊組成,這些模塊一般分別于不同的團(tuán)隊(duì)負(fù)責(zé)開發(fā)。假設(shè)有兩個(gè)團(tuán)隊(duì),他們分別負(fù)責(zé)項(xiàng)目中的app-ui(前端)和data-service(數(shù)據(jù)服務(wù))兩個(gè)模塊,且app-ui需要依賴data-service項(xiàng)目作為數(shù)據(jù)服務(wù)來源。

          基于以上假設(shè),若data-service團(tuán)隊(duì)正在進(jìn)行快節(jié)奏的bug修復(fù)及功能增強(qiáng),會(huì)在短時(shí)間內(nèi)高頻率地更新代碼以及發(fā)布版本。就會(huì)出現(xiàn)以下情況:

          1、data-service團(tuán)隊(duì)每次發(fā)布新版本更新代碼時(shí),都應(yīng)該通知app-ui團(tuán)隊(duì)。

          2、app-ui團(tuán)隊(duì)則需要定期更新其pom.xml以獲得最新的版本。

          這樣,勢(shì)必會(huì)影響開發(fā)效率,甚至?xí)绊戫?xiàng)目的驗(yàn)收及投產(chǎn)。要解決這個(gè)問題,其實(shí)很簡單,那就是使用SNAPSHOT(快照)版本。

          SNAPSHOT是什么

          SNAPSHOT(快照)是一種特殊的版本,它表示當(dāng)前開發(fā)進(jìn)度的副本。與常規(guī)版本不同,快照版本的構(gòu)件在發(fā)布時(shí),Maven會(huì)自動(dòng)為它打上一個(gè)時(shí)間戳,有了這個(gè)時(shí)間戳后,當(dāng)依賴該構(gòu)件的項(xiàng)目進(jìn)行構(gòu)建時(shí),Maven就能從倉庫中找到最新的SNAPSHOT版本文件。

          定義一個(gè)組件或模塊為快照版本,只需要在其pom.xml中版本號(hào)(version元素的值)后加上-SNAPSHOT即可,例如:

      <groupId>net.biancheng.www</groupId>
      <artifactId>helloMaven</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>1234復(fù)制代碼類型:[java]

          要解決上面的問題,現(xiàn)在就十分簡單了:data-servcie團(tuán)隊(duì)每次更新代碼都使用快照版本發(fā)布到倉庫中,app-ui團(tuán)隊(duì)則引用快照版本的依賴,這樣app-ui不再需要重復(fù)修改pom.xml中的配置,每次構(gòu)建時(shí)都會(huì)自動(dòng)從倉庫中獲取最新的構(gòu)件。

          默認(rèn)情況下對(duì)于快照本本的構(gòu)件,Maven會(huì)每天從倉庫中獲取一次更新,用戶也可以在任何Maven命令中使用-U參數(shù)強(qiáng)制Maven檢查更新。命令如下:

      mvn clean package -U1復(fù)制代碼類型:[java]

          SNAPSHOT版本VSRELEASE版本

          Maven倉庫分為兩種,Snapshot快照倉庫和Release發(fā)行倉庫。Snapshot快照倉庫用于保存開發(fā)過程中的不穩(wěn)定SNAPSHOT版本,Release發(fā)行倉庫則用來保存穩(wěn)定的RELEASE版本。

          Maven會(huì)根據(jù)模塊的版本號(hào)(pom.xml文件中的version元素)中是否帶有-SNAPSHOT來判斷是SNAPSHOT版本還是正式RELEASE版本。帶有-SNAPSHOT是SNAPSHOT(快照)版本,不帶-SNAPSHOT的就是正式RELEASE(發(fā)布)版本。

          SNAPSHOT版本和RELEASE版本區(qū)別如下表。

      區(qū)別SNAPSHOT 版本RELEASE 版本
      定義版本號(hào)中帶有 -SNAPSHOT 版本號(hào)中不帶有 -SNAPSHOT 
      發(fā)布倉庫Snapshot 快照倉庫 Release 發(fā)行倉庫
      是否從遠(yuǎn)程倉庫自動(dòng)獲取更新在不更改版本號(hào)的前提下,直接編譯打包時(shí),Maven 會(huì)自動(dòng)從遠(yuǎn)程倉庫上下載最新的快照版本。在不更改版本號(hào)的前提下,直接編譯打包時(shí),如果本地倉庫已經(jīng)存在該版本的模塊,則 Maven 不會(huì)主動(dòng)去遠(yuǎn)程倉庫下載。
      穩(wěn)定性快照版本往往對(duì)應(yīng)了大量帶有時(shí)間戳的構(gòu)件,具有不穩(wěn)定性。發(fā)布版本只對(duì)應(yīng)了唯一的構(gòu)件,具有穩(wěn)定性。
      使用場景快照版本只應(yīng)該在組織內(nèi)部的項(xiàng)目中依賴使用。Maven 項(xiàng)目使用的組織外的依賴項(xiàng)都應(yīng)該時(shí)發(fā)布版本的,不應(yīng)該使用任何的快照版本依賴,否則會(huì)造成潛在的風(fēng)險(xiǎn)。
      發(fā)布前是否需要修改當(dāng)項(xiàng)目經(jīng)過完善的測(cè)試后,需要上線時(shí),應(yīng)該將項(xiàng)目從快照版本更改為發(fā)布版本不需要修改

          示例

          打開命令行窗口,跳轉(zhuǎn)到D:\maven\secondMaven目錄,執(zhí)行以下mvn命令。

      mvn clean package -U1復(fù)制代碼類型:[java]

          命令執(zhí)行結(jié)果如下。

      [INFO] Scanning for projects...
      [WARNING]
      [WARNING] Some problems were encountered while building the effective model for net.biancheng.www:secondMaven:jar:1.0-SNAPSHOT
      [WARNING] 'dependencies.dependency.systemPath' for net.biancheng.www:helloMaven:jar should use a variable instead of a hard-coded path D:\maven\helloMaven\target\helloMaven-1.0-SNAPSHOT.jar @ line 37, column 16[WARNING]
      [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
      [WARNING]
      [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
      [WARNING]
      [INFO]
      [INFO] -------------------< net.biancheng.www:secondMaven >--------------------
      [INFO] Building secondMaven 1.0-SNAPSHOT
      [INFO] --------------------------------[ jar ]---------------------------------
      [INFO]
      [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ secondMaven ---
      [INFO] Deleting D:\maven\secondMaven\target
      [INFO]
      [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ secondMaven ---
      [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
      [INFO] skip non existing resourceDirectory D:\maven\secondMaven\src\main\resources
      [INFO]
      [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ secondMaven ---
      [INFO] Changes detected - recompiling the module!
      [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
      [INFO] Compiling 1 source file to D:\maven\secondMaven\target\classes
      [INFO]
      [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ secondMaven ---
      [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
      [INFO] skip non existing resourceDirectory D:\maven\secondMaven\src\test\resources
      [INFO]
      [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ secondMaven ---
      [INFO] Changes detected - recompiling the module!
      [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
      [INFO] Compiling 1 source file to D:\maven\secondMaven\target\test-classes
      [INFO]
      [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ secondMaven ---
      [INFO] Surefire report directory: D:\maven\secondMaven\target\surefire-reports
      -------------------------------------------------------
      T E S T S
      -------------------------------------------------------
      Running net.biancheng.www.AppTest
      Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec
      Results :
      Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
      [INFO]
      [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ secondMaven ---
      [INFO] Building jar: D:\maven\secondMaven\target\secondMaven-1.0-SNAPSHOT.jar
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time:  2.413 s
      [INFO] Finished at: 2021-03-04T10:24:32+08:00
      [INFO] ------------------------------------------------------------------------

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多