首页 > 其他分享 >dependencyManagement正确使用方法

dependencyManagement正确使用方法

时间:2022-09-04 22:26:39浏览次数:67  
标签:dependencyManagement 依赖 正确 版本号 springcloud dept 子项目 方法

dependencyManagement正确使用方法

dependencyManagement正确使用方法

一、介绍

Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。

二、使用步骤

创建以父依赖:

<?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.yan</groupId>
    <artifactId>springcloud1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud-api</module>
        <module>springcloud-provider-dept--8001</module>
        <module>springcloud-consumer-dept-80</module>
        <module>springcloud-eureka-7001</module>
        <module>springcloud-eureka-7002</module>
        <module>springcolud-eureka-7003</module>
        <module>springcloud-provider-dept--8002</module>
        <module>springcloud-provider-dept--8003</module>
        <module>springcloud-consumer-dept-feign</module>
        <module>springcloud-provider-dept-hystrix-8002</module>
        <module>springcloud-consumer-hystrix-dashboard</module>
        <module>springcloud-zuul-9527</module>
        <module>springcloud-config-server-3344</module>
    </modules>
    <!--打包方式pom-->
    <packaging>pom</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <lombok.version>1.16.10</lombok.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>
<!--    这里进行版本管理,模块需要用到什么需要自己去导-->
    <dependencyManagement>
        <dependencies>
<!--            导入springCloud依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
<!--            springBoot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.4.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
<!--            连接数据库-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.10</version>
            </dependency>
<!--            springBoot mybatis启动器-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
<!--            日志测试-->
<!--            junit-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
<!--            lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
<!--            log4j-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
    </build>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104

这里module就是使用到的子模块,他们都收到父模块的版本控制,但是依赖需要自己去导入,properties里面就是版本的一个控制,然后dependencyManagement里面就可以放我们的父依赖了

总结

如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号。当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要逐个修改子项目;另外如果某个子项目需要另外的一个版本,只需要声明version即可。dependencyManagement中定义的只是依赖的声明,并不实现引入,因此子项目需要显式的声明需要用的依赖。

https://blog.csdn.net/weixin_46558851/article/details/110476562

标签:dependencyManagement,依赖,正确,版本号,springcloud,dept,子项目,方法
From: https://www.cnblogs.com/sunny3158/p/16656301.html

相关文章

  • centos8.x版本安装宝塔提示Errors during downloading metadata for repository ‘epe
     今天一个客户在新安装宝塔时,Linux服务器报错:Errorsduringdownloadingmetadataforrepository‘epel’排查后发现客户使用的是centos8.2的版本,所以导致宝塔安装出......
  • 终止 Array.prototype.forEach 方法运行的方式
    通常情况下,Array.prototype上的遍历方法forEach、map、filter、...被调用以后会完整的遍历每一个数组项,并执行内部代码指令,无法被中途终止。但是可以通过 throw语句......
  • array、object、map、set常见方法
    引用数据类型有object,array,function一、数组一、创建数组1、使用数组字面量方法vararr1=[];//创建一个数组vararr2=[20];//创建一个包含1项数......
  • SAP UI5 应用中 MockServer 的实例化方法
    我们在SAPUI5应用代码中,使用如下代码创建一个MockServer实例:this.oVocabularyMockServer=newMockServer({rootUri:"/sap/opu/odata/SAP/vocabulary_srv/"});......
  • npm太慢, 淘宝npm镜像使用方法
    淘宝npm地址:http://npm.taobao.org/如何使用有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:1.临时使用npm--reg......
  • python-------assign的使用方法
    https://blog.csdn.net/qq_42240729/article/details/105628595?ops_request_misc=&request_id=&biz_id=102&utm_term=python%20assign&utm_medium=distribute.pc_search_r......
  • js的数组操作方法大全
    js中数组的操作方法大全常见的一些数组操作push,pop,unshift,shiftpush语法array.push(item1,item2,...,itemX)push()方法:可以将一个或者更多的参数添加在数组的尾部......
  • 领域最全!多传感器融合方法综述!(Camera/Lidar/Radar等多源异构数据)
    点击进入→自动驾驶之心技术交流群后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!自动驾驶中的多传感器融合原文:Multi-SensorFusioninAutomatedDriving:A......
  • [ROS学习] 15. launch启动文件的使用方法
    笔记参考:【ROS学习笔记】15.launch启动文件的使用方法内容参考:B站ROS公开课:【古月居】古月·ROS入门21讲本节说明在之前的学习中,比如上一讲TF坐标广播和监听,启动程序非常......
  • Java中的方法
    方法的定义定义方法的格式修饰符返回值类型方法名(参数类型){***}修饰符访问控制修饰符publicprivateprotected当父类声明为public时,子类必须为public当父类声......