美文网首页
10 强制约束依赖的版本号

10 强制约束依赖的版本号

作者: 笑Skr人啊 | 来源:发表于2020-03-23 14:16 被阅读0次

1 强制约束版本号

  • 项目结构如下,所有项目都依赖mall-common


    项目结构
  • mall-common中依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
  • mall-order中依赖
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.58</version>
</dependency>
  • mall-order依赖结构如下
mall-order ->
    mall-common ->
        fastjson-1.2.58

mall-order ->
    fastjson-1.1.58
  • 此时就近原则生效,mall-order.jar中只存在fastjson-1.1.58,XXX Not Found问题

2 如何强制约束版本号

  • 针对mall-common,开发一个pom包(mall-common-bom),该pom包专门用dependencyManagement来约束依赖方的各个版本号
  • 依赖方(mall-order)不直接依赖mall-common,而是依赖于mall-common-bom,此时mall-order在dependency声明fastjson依赖时,在对fastjson自定义依赖版本时,pom就会报错

3 项目使用

mall-common
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
---------------------------------------------------------------------------------------------------------
mall-common-bom
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.mall.common</groupId>
            <artifactId>mall-common</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>
    </dependencies>
</dependencyManagement>

---------------------------------------------------------------------------------------------------------
mall-order
<dependencyManagement>
   <dependencies>
       <dependency>
           <groupId>com.mall.common</groupId>
           <artifactId>mall-common-bom</artifactId>
           <version>1.0.0</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
   </dependencies>
</dependencyManagement>

<!-- 此时如果声明fastjson的依赖版本号,pom文件报错-->
 <dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.1.58</version>
    </dependency>
</dependencies>

相关文章

  • 10 强制约束依赖的版本号

    1 强制约束版本号 项目结构如下,所有项目都依赖mall-common项目结构 mall-common中依赖 ma...

  • 9 集中约束版本号

    1 为什么集中约束版本号 Spring + Spring MVC项目依赖 此时,要升级Spring相关依赖版本号,...

  • 【编译】解决依赖库版本号覆盖的问题

    强制当前工程依赖的版本号(忽略子依赖中的版本) app目录下的build.gradle 中,

  • Gradle依赖配置&命令备忘录

    1. 强制设置gradle依赖版本号 2. 刷新依赖 3. AndroidStudio右上角的Gradle里不显...

  • SQL 约束

    NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含...

  • PMP(二十九)

    确定和整合依赖关 A、强制性依赖关系。强制性依赖关系是法律或合同要求的或工作的内在性质决定的依赖关系,强制性依赖关...

  • Gradle 命令

    强制更新最新依赖 gradlew build --refresh-dependencies 强制更新最新依赖,清除...

  • App Store审核期间关闭某些功能,上线之后开启

    有点类似 强制检测更新提示弹窗的功能逻辑。 去appStore请求版本号,如果请求到的版本号,大于你手机的版本号,...

  • git远程分支回滚

    本地新建临时分支 查看要回滚到的版本号 回滚版本号 强制更新到远程分支 完成

  • 诗词短句

    道德是用来约束自己的,法律才能强制他人。

网友评论

      本文标题:10 强制约束依赖的版本号

      本文链接:https://www.haomeiwen.com/subject/zrrwyhtx.html