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

Maven中<distributionManagement>的使用及說(shuō)明

 更新時(shí)間:2025年01月22日 09:29:05   作者:對(duì)酒當(dāng)歌丶人生幾何  
本文主要介紹了Maven中的SNAPSHOT和RELEASE倉(cāng)庫(kù)的區(qū)別,以及如何在POM文件中配置和使用快照版本,快照版本可以實(shí)現(xiàn)實(shí)時(shí)更新,方便開(kāi)發(fā)過(guò)程中的依賴管理,同時(shí),本文還總結(jié)了Maven的一些常用命令及其作用

SNAPSHOT倉(cāng)庫(kù)與RELEASE倉(cāng)庫(kù)的區(qū)別

我們?cè)陂_(kāi)發(fā)軟件階段時(shí)會(huì)在POM文件中導(dǎo)入很多依賴公共庫(kù),這些公共庫(kù)可能隨時(shí)需要修改并發(fā)布,可能一天就要發(fā)布一次甚至一天要發(fā)布N次。

對(duì)與采用maven來(lái)管理依賴公共庫(kù)時(shí),由于maven的依賴管理是基于版本管理(version),如果我們本地已經(jīng)存在了公共庫(kù)的依賴,那么即使內(nèi)部服務(wù)器上的組件發(fā)生變化,在本地與服務(wù)器上依賴版本相同的情況下,maven不會(huì)再去內(nèi)部服務(wù)器上拉取最新的依賴,也就是說(shuō)無(wú)法實(shí)時(shí)將服務(wù)器上的更新同步到本地。

如果要解決這個(gè)問(wèn)題,就需要升級(jí)組件的版本號(hào)(version),可這樣就明顯不符合要求和實(shí)際情況了,而SNAPSHOT快照版本,就可以解決這個(gè)問(wèn)題,對(duì)于每次內(nèi)部服務(wù)器上更新了組件,本地都會(huì)去重新拉取一遍。

在maven中的倉(cāng)庫(kù)分為兩種:

  • snapshot快照倉(cāng)庫(kù)
  • release發(fā)布倉(cāng)庫(kù)

snapshot快照倉(cāng)庫(kù)用于保存開(kāi)發(fā)過(guò)程中的不穩(wěn)定版本,release正式倉(cāng)庫(kù)則是用來(lái)保存穩(wěn)定的發(fā)行版本(比如Spring、SpringBoot)。

定義一個(gè)組件/模塊為快照版本,只需要在pom文件中在該模塊的版本號(hào)后加上-SNAPSHOT即可,如下:

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.seeker</groupId>
    <artifactId>data-export-center</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0-SNAPSHOT</version>

maven會(huì)根據(jù)模塊的版本號(hào)(version)中是否帶有-SNAPSHOT來(lái)判斷是快照版本還是正式版本。

如果是快照版本,那么在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到快照版本庫(kù)中,而使用快照版本的模塊,在不更改版本號(hào)的情況下,直接編譯打包時(shí),maven會(huì)自動(dòng)從鏡像服務(wù)器上下載最新的快照版本。

那么如果是正式發(fā)布版本(release),那么在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到正式版本庫(kù)中,而使用正式版本的模塊,在不更改版本號(hào)的情況下,編譯打包時(shí)如果本地已經(jīng)存在該版本的模塊則不會(huì)主動(dòng)去鏡像服務(wù)器上下載。

所以,我們?cè)陂_(kāi)發(fā)階段,可以將公用庫(kù)的版本設(shè)置為快照版本,而被依賴組件則引用快照版本進(jìn)行開(kāi)發(fā),在公用庫(kù)的快照版本更新后,我們也不需要修改pom文件提示版本號(hào)來(lái)下載新的版本,直接mvn執(zhí)行相關(guān)編譯、打包命令即可重新下載最新的快照庫(kù)了,從而也方便了我們進(jìn)行開(kāi)發(fā)。

distributionManagement定義SNAPSHOT倉(cāng)庫(kù)和RELEASE倉(cāng)庫(kù)

通常一個(gè)POM文件的內(nèi)容格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     
    <parent>
        <groupId>com.seeker</groupId>
        <artifactId>common-server</artifactId>
        <version>2.0.0-SNAPSHOT</version>
    </parent>    
     
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.seeker</groupId>
    <artifactId>data-export-center</artifactId>
    <packaging>pom</packaging>
    <version>${project.release.version}</version>
    
    /**
    子模塊
    */
    <modules>
    XXXXXXX
    </modules>
    
    /**
    自定義屬性
    */
    <properties>  
        <spring.version>5.1.9.RELEASE</spring.version>
        <project.release.version>1.0.0SNAPSHOT</project.release.version>  
    </properties> 
    /**
    統(tǒng)一依賴版本,子模塊可以不用寫版本號(hào)
    */
    
	<dependencyManagement>
	    <dependency>
   	      <groupId>org.springframework</groupId>
    	  <artifactId>spring-context</artifactId>
    	<version>${spring.version}</version>
	   </dependency>
	<dependencyManagement>
    
   <profiles>  
        <profile>  
            <id>release</id>  
        <properties>  
            <project.release.version>2.0.0RELEASE</project.release.version>  
        </properties>  
        </profile>  
    </profiles>  
    
    /**
    <!--定義snapshots倉(cāng)庫(kù)和releases倉(cāng)庫(kù)的地址--> 
    */
  	<distributionManagement>
        <repository>
            <id>huawei</id>
            <url>https://huaweiCloud.com.cn/artifactory/seeker/</url>
        </repository>
        <snapshotRepository>
            <id>seekerWorkds</id>
            <url>https://seeker.top.com.cn/artifactory/seeker/</url>
        </snapshotRepository>
    </distributionManagement>

首先我們看到pom文件中version的定義是采用占位符的形式,這樣的好處是可以根據(jù)不同的profile來(lái)替換版本信息,比如maven默認(rèn)是使用1.0.0SNAPSHOT作為該模塊的版本,如果在發(fā)布時(shí)使用mvn deploy -P release 的命令,那么會(huì)自動(dòng)使用2.0.0RELEASE作為發(fā)布版本,那么根據(jù)maven處理snapshot和release的規(guī)則,由于版本號(hào)后不帶-SNAPSHOT故當(dāng)成是正式發(fā)布版本。

會(huì)被發(fā)布到release倉(cāng)庫(kù),在distributionManagement段中配置的是snapshot快照庫(kù)和release發(fā)布庫(kù)的地址。

對(duì)于版本庫(kù)主要是id和url的配置,配置完成后就可以通過(guò)mvn deploy進(jìn)行發(fā)布了。

Maven常用命令及其作用

  • maven clean:對(duì)項(xiàng)目進(jìn)行清理,刪除target目錄下編譯的內(nèi)容(將以前編譯得到的舊文件class字節(jié)碼文件刪除)。
  • maven compile:編譯項(xiàng)目源代碼,將JAVA源程序編譯成class文件。
  • maven test:對(duì)項(xiàng)目進(jìn)行運(yùn)行測(cè)試。
  • maven packet:打包文件并存放到項(xiàng)目的target目錄下,打包好的文件通常都是編譯后的class文件。
  • maven install:在本地倉(cāng)庫(kù)生成倉(cāng)庫(kù)的安裝包,可供其他項(xiàng)目引用,同時(shí)打包后的文件放到項(xiàng)目的target目錄下。
  • maven deploy:可以將maven所打的jar包上傳到遠(yuǎn)程的repository,便于其他開(kāi)發(fā)者和工程共享。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用java8 API遍歷過(guò)濾文件目錄及子目錄和隱藏文件示例詳解

    使用java8 API遍歷過(guò)濾文件目錄及子目錄和隱藏文件示例詳解

    這篇文章主要介紹了使用java8API遍歷過(guò)濾文件目錄及子目錄及隱藏文件示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Spring?Boot?3.2.5集成mysql的詳細(xì)步驟記錄

    Spring?Boot?3.2.5集成mysql的詳細(xì)步驟記錄

    作為一名Java開(kāi)發(fā)者,我們經(jīng)常需要在我們的應(yīng)用程序中使用數(shù)據(jù)庫(kù),在Spring Boot中集成數(shù)據(jù)庫(kù)是非常容易的,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot?3.2.5集成mysql的詳細(xì)步驟,需要的朋友可以參考下
    2024-04-04
  • SpringSecurity6.4中一次性令牌登錄(One-Time Token Login)實(shí)現(xiàn)

    SpringSecurity6.4中一次性令牌登錄(One-Time Token Login)實(shí)現(xiàn)

    Spring Security為一次性令牌認(rèn)證提供了支持,本文就來(lái)介紹一下SpringSecurity6.4中一次性令牌登錄(One-Time Token Login)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • JavaWeb JDBC + MySql 通訊錄實(shí)現(xiàn)簡(jiǎn)單的增刪改查功能案例詳解

    JavaWeb JDBC + MySql 通訊錄實(shí)現(xiàn)簡(jiǎn)單的增刪改查功能案例詳解

    這篇文章主要介紹了JavaWeb JDBC + MySql 通訊錄實(shí)現(xiàn)簡(jiǎn)單的增刪改查功能,結(jié)合具體案例形式詳細(xì)分析了JavaWeb JDBC + MySql數(shù)據(jù)庫(kù)連接、增刪改查等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • 必須詳細(xì)與全面的Java開(kāi)發(fā)環(huán)境搭建圖文教程

    必須詳細(xì)與全面的Java開(kāi)發(fā)環(huán)境搭建圖文教程

    本篇文章內(nèi)容包括:Linux理論與實(shí)操,MySQL實(shí)操,JDK實(shí)操,Tomcat實(shí)操和Tomcat實(shí)操,需要的朋友可以參考下
    2019-11-11
  • Spring如何自定義XML配置擴(kuò)展

    Spring如何自定義XML配置擴(kuò)展

    這篇文章主要介紹了Spring如何自定義XML配置擴(kuò)展,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringMVC詳解如何映射請(qǐng)求數(shù)據(jù)

    SpringMVC詳解如何映射請(qǐng)求數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于SpringMvc映射請(qǐng)求數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-06-06
  • MyBatis?動(dòng)態(tài)SQL使用及原理

    MyBatis?動(dòng)態(tài)SQL使用及原理

    這篇文章主要為大家介紹了MyBatis動(dòng)態(tài)SQL使用及原理的學(xué)習(xí)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Resttemplate上傳文件500異常的原因及解決方法

    Resttemplate上傳文件500異常的原因及解決方法

    使用 Resttemplate 調(diào)用 DMS 文件服務(wù)器 Http 接口,出現(xiàn) 500 異常報(bào)錯(cuò),所以本文給大家介紹了Resttemplate上傳文件500異常的原因及解決方法,需要的朋友可以參考下
    2024-08-08
  • Java技術(shù)長(zhǎng)久占居主要地位的12個(gè)原因

    Java技術(shù)長(zhǎng)久占居主要地位的12個(gè)原因

    這篇文章主要為大家詳細(xì)介紹了12個(gè)Java長(zhǎng)久占居主要地位的原因,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評(píng)論

东城区| 徐闻县| 光泽县| 额济纳旗| 昌江| 永登县| 沈丘县| 米脂县| 娄底市| 江永县| 阳信县| 广宗县| 公主岭市| 揭东县| 阳城县| 行唐县| 西和县| 丘北县| 马山县| 绍兴县| 沽源县| 南木林县| 时尚| 汉源县| 漳平市| 木里| 嘉禾县| 乡宁县| 永平县| 高要市| 吴桥县| 雷州市| 潞城市| 井冈山市| 固原市| 来凤县| 乌苏市| 法库县| 新宁县| 勐海县| 天柱县|