V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
breadykidliu
V2EX  ›  程序员

大佬们, maven 依赖中怎么指定子依赖的版本号?

  •  
  •   breadykidliu · 295 天前 · 1599 次点击
    这是一个创建于 295 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司在验证 maven 以来的漏洞,扫到了如下

    名称:
    jdom-1.1 高危漏洞
    
     位置:
    我的应用/pom.xml/[com.公司.bs:我的应用:1.0.0]/[公司内部依赖.gsdk:g-sdk:2.2.6.2]/[com.aliyun.oss:aliyun-sdk-oss:3.6.0]/[org.jdom:jdom:1.1]
    

    如何在 maven 中修改 org.jdom:jdom 这个依赖的版本?

    10 条回复    2024-01-31 17:37:07 +08:00
    BBCCBB
        1
    BBCCBB  
       295 天前
    在 aliyun 的依赖里排除掉这个依赖, 然后在你的项目里手动把这个依赖的高版本加上. 不过可能会导致不兼容..
    Nnq
        2
    Nnq  
       295 天前 via Android
    看下是哪个包用这个版本 然后该升级升级
    breadykidliu
        3
    breadykidliu  
    OP
       295 天前
    @BBCCBB 请问是这样改吗?
    ```
    <dependency>
    <groupId>com.公司内部依赖.gsdk</groupId>//这个依赖里引用了 aliyun-sdk-oss
    <artifactId>g-sdk</artifactId>
    <version>2.2.6.2</version>
    </dependency>
    <dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <exclusions>
    <exclusion>
    <groupId>org.jdom</groupId>
    <artifactId>jdom</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>org.jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>无漏洞版本号</version>
    </dependency>
    ```
    BBCCBB
        4
    BBCCBB  
       295 天前
    你尝试下看行不行, 不行的话就这样试试.

    ```xml
    <dependency>
    <groupId>com.公司内部依赖.gsdk</groupId>//这个依赖里引用了 aliyun-sdk-oss
    <artifactId>g-sdk</artifactId>
    <version>2.2.6.2</version>
    <exclusions>
    <exclusion>
    <groupId>org.jdom</groupId>
    <artifactId>jdom</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    ```
    yidinghe
        5
    yidinghe  
       295 天前   ❤️ 1
    在你的应用当中直接添加 jdom 依赖并使用你想要的版本即可。你的应用会优先使用直接依赖所指定的版本。
    amanisheir
        6
    amanisheir  
       295 天前   ❤️ 1
    dependencyManagement 直接提高版本试试,看兼容不
    cslive
        7
    cslive  
       295 天前   ❤️ 1
    <dependencyManagement > 指定版本,全局生效
    wolfie
        8
    wolfie  
       295 天前   ❤️ 1
    当前项目手动引入就行,最短路径依赖优先生效。
    blackmirror
        9
    blackmirror  
       295 天前
    先排除,再手动引入吧
    hexiaowu1993
        10
    hexiaowu1993  
       295 天前   ❤️ 1
    在父 pom 的 dependencyManagement 手动管理子依赖的版本,这样依赖的就是你手动管理的版本。
    可以通过 mvn dependency:tree > 1.txt 查看依赖树的输出结果(如果不出现依赖冲突)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:24 · PVG 21:24 · LAX 05:24 · JFK 08:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.