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

290 天前
 breadykidliu

公司在验证 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 这个依赖的版本?

1585 次点击
所在节点    程序员
10 条回复
BBCCBB
290 天前
在 aliyun 的依赖里排除掉这个依赖, 然后在你的项目里手动把这个依赖的高版本加上. 不过可能会导致不兼容..
Nnq
290 天前
看下是哪个包用这个版本 然后该升级升级
breadykidliu
290 天前
@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
290 天前
你尝试下看行不行, 不行的话就这样试试.

```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
290 天前
在你的应用当中直接添加 jdom 依赖并使用你想要的版本即可。你的应用会优先使用直接依赖所指定的版本。
amanisheir
290 天前
dependencyManagement 直接提高版本试试,看兼容不
cslive
290 天前
<dependencyManagement > 指定版本,全局生效
wolfie
290 天前
当前项目手动引入就行,最短路径依赖优先生效。
blackmirror
290 天前
先排除,再手动引入吧
hexiaowu1993
290 天前
在父 pom 的 dependencyManagement 手动管理子依赖的版本,这样依赖的就是你手动管理的版本。
可以通过 mvn dependency:tree > 1.txt 查看依赖树的输出结果(如果不出现依赖冲突)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013029

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX