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

Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng)

 更新時(shí)間:2024年01月07日 11:17:15   作者:全棧夢(mèng)想家  
在開發(fā)?Java?項(xiàng)目時(shí),管理和協(xié)調(diào)依賴項(xiàng)的版本號(hào)是一項(xiàng)重要而繁瑣的任務(wù),本文主要介紹了Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng),具有一定的參考價(jià)值,感興趣的可以了解一下

介紹

在開發(fā) Java 項(xiàng)目時(shí),管理和協(xié)調(diào)依賴項(xiàng)的版本號(hào)是一項(xiàng)重要而繁瑣的任務(wù)。

而 Maven 提供了 <dependencyManagement> 元素,用于定義項(xiàng)目中所有依賴項(xiàng)的版本。它允許您指定項(xiàng)目中每個(gè)依賴項(xiàng)的版本號(hào),而無需在每個(gè)模塊的 <dependencies> 部分中重復(fù)指定版本號(hào)。

本文將介紹 dependencyManagement 的作用,并演示如何在 Maven 項(xiàng)目中使用它來管理依賴項(xiàng)版本。

使用dependencyManagement可以統(tǒng)一管理項(xiàng)目中依賴包的版本號(hào),當(dāng)需要變更版本號(hào)時(shí)只需在父pom中修改即可;如果某個(gè)子項(xiàng)目需要指定一個(gè)特殊的版本號(hào)時(shí),只需要在自己項(xiàng)目的pom.xml中顯示聲明一個(gè)版本號(hào)即可,此時(shí)子項(xiàng)目會(huì)使用自己聲明的版本號(hào),而不繼承父項(xiàng)目的版本號(hào)

下面是一個(gè)簡(jiǎn)單的示例,說明了如何在 Maven 項(xiàng)目中使用它

首先在項(xiàng)目的父 pom.xml 文件中添加如下配置:

<project>
	...
	<properties>
		<swagger.version>3.0.0</swagger.version>
	</properties>
   
	<dependencyManagement>
		<dependencies>
			<!--swagger3-->
			<dependency>
			    <groupId>io.springfox</groupId>
			    <artifactId>springfox-boot-starter</artifactId>
			    <version>${swagger.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	...
</project>

然后,在其他 Maven 子模塊的 pom.xml 文件中,只需聲明依賴項(xiàng)的 groupId 和 artifactId,而無需重復(fù)指定版本號(hào):

<dependencies>
	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-boot-starter</artifactId>
		</dependency>
</dependencies>

子模塊將從父級(jí)項(xiàng)目中繼承定義的版本號(hào),確保項(xiàng)目中所有使用的依賴項(xiàng)版本一致。

dependencyManagement與dependencies的區(qū)別

dependencies相對(duì)于dependencyManagement,所有聲明在dependencies里的依賴都會(huì)自動(dòng)引入,并默認(rèn)被所有的子項(xiàng)目繼承
dependencyManagement里只是聲明依賴,并不會(huì)自動(dòng)引入,因此子項(xiàng)目需要顯示聲明依賴。在子項(xiàng)目中聲明了依賴項(xiàng),且沒有指定具體版本,才會(huì)從父項(xiàng)目中繼承該項(xiàng),并且version和scope都讀取自父pom;另外如果子項(xiàng)目中指定了版本號(hào),則會(huì)使用子項(xiàng)目中指定的版本
??注意:一個(gè)無子工程的獨(dú)立工程中如果使用dependencyManagement,那么它自己的pom.xml文件引入的依賴也可以不指定版本

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ume.qa</groupId>
    <artifactId>SpringCloudGateway</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>3.0.1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <version>3.0.3</version>
        </dependency>
        <!--  SpringCloud alibaba nacos    -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-cloud-context</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-commons</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-starter</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

        <!--fegin組件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>3.0.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-cloud-commons</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-starter</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- Feign Client for loadBalancing -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
            <version>3.0.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-cloud-commons</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-context</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.4.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

總結(jié)

使用 dependencyManagement 元素可以簡(jiǎn)化依賴項(xiàng)版本的管理,減少重復(fù)和錯(cuò)誤的聲明。通過將版本號(hào)集中在一個(gè)地方進(jìn)行管理,確保項(xiàng)目中所有使用的依賴項(xiàng)的版本保持一致性。這不僅提高了開發(fā)效率,還能減少因依賴項(xiàng)版本不一致導(dǎo)致的問題。因此,在開發(fā) Java 項(xiàng)目時(shí),我們應(yīng)該充分利用它來更好地管理項(xiàng)目的依賴項(xiàng)版本

到此這篇關(guān)于Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng)的文章就介紹到這了,更多相關(guān)Maven dependencyManagement管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • restTemplate發(fā)送get與post請(qǐng)求并且?guī)?shù)問題

    restTemplate發(fā)送get與post請(qǐng)求并且?guī)?shù)問題

    這篇文章主要介紹了restTemplate發(fā)送get與post請(qǐng)求并且?guī)?shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java?二維數(shù)組創(chuàng)建及使用方式

    Java?二維數(shù)組創(chuàng)建及使用方式

    這篇文章主要介紹了Java?二維數(shù)組創(chuàng)建及使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • java?jar包后臺(tái)運(yùn)行的兩種方式詳解

    java?jar包后臺(tái)運(yùn)行的兩種方式詳解

    后臺(tái)運(yùn)行jar的方法有多種方法可以實(shí)現(xiàn)Java后臺(tái)運(yùn)行jar文件,下面介紹其中兩種常見的方法,下面這篇文章主要給大家介紹了關(guān)于java?jar包后臺(tái)運(yùn)行的兩種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • springboot緩存的使用實(shí)踐

    springboot緩存的使用實(shí)踐

    這篇文章主要介紹了springboot緩存的使用,spring針對(duì)各種緩存實(shí)現(xiàn),抽象出了CacheManager接口,用戶使用該接口處理緩存,而無需關(guān)心底層實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2018-06-06
  • SpringBoot自動(dòng)裝配之多數(shù)據(jù)源SDK解決Dubbo性能瓶頸詳解

    SpringBoot自動(dòng)裝配之多數(shù)據(jù)源SDK解決Dubbo性能瓶頸詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot自動(dòng)裝配中如何通過多數(shù)據(jù)源SDK解決Dubbo性能瓶頸,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下
    2025-09-09
  • Mybatis的sql語句執(zhí)行異常后打印到日志問題

    Mybatis的sql語句執(zhí)行異常后打印到日志問題

    文章介紹了一種Mybatis異常日志打印方案,主要通過Mybatis攔截器獲取執(zhí)行的sql語句,并利用ThreadLocal存儲(chǔ),以避免多線程下的sql語句覆蓋問題,當(dāng)異常發(fā)生時(shí),從ThreadLocal中取出sql語句并打印到單獨(dú)的日志文件中,方便數(shù)據(jù)恢復(fù),該方案經(jīng)過壓力測(cè)試
    2024-10-10
  • Springboot工具類FileCopyUtils使用教程

    Springboot工具類FileCopyUtils使用教程

    這篇文章主要介紹了Springboot內(nèi)置的工具類之FileCopyUtils的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • SpringBoot+mybatis實(shí)現(xiàn)多數(shù)據(jù)源支持操作

    SpringBoot+mybatis實(shí)現(xiàn)多數(shù)據(jù)源支持操作

    這篇文章主要介紹了SpringBoot+mybatis實(shí)現(xiàn)多數(shù)據(jù)源支持操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java中Lombok工具庫使用的技術(shù)指南

    Java中Lombok工具庫使用的技術(shù)指南

    Lombok 是 Java 開發(fā)中常用的工具庫,通過注解的方式大大簡(jiǎn)化了代碼開發(fā),本篇文章將從基礎(chǔ)入門到高級(jí)用法,深入講解 Lombok 的使用技巧和注意事項(xiàng),快跟隨小編一起來學(xué)習(xí)一下吧
    2025-04-04
  • java中Swing會(huì)奔跑的線程俠

    java中Swing會(huì)奔跑的線程俠

    本文通過代碼示例給大家詳細(xì)講解了java中Swing會(huì)奔跑的線程俠這個(gè)經(jīng)典的示例,有興趣的朋友學(xué)習(xí)下。
    2018-03-03

最新評(píng)論

安阳市| 舞钢市| 苏尼特右旗| 枣庄市| 许昌市| 呼图壁县| 南川市| 迁西县| 南宫市| 调兵山市| 缙云县| 嘉禾县| 义马市| 上虞市| 沾化县| 沂水县| 安义县| 泰来县| 如皋市| 吴江市| 西贡区| 安西县| 当雄县| 景洪市| 四川省| 三穗县| 高要市| 巴林左旗| 建湖县| 西吉县| 开封县| 丰县| 石嘴山市| 廉江市| 南涧| 监利县| 镇赉县| 酒泉市| 仪征市| 屏山县| 望江县|