maven - 使用 maven 解决正确库的问题:版本管理自
问题描述
我在我的项目中使用 Google Guava。
我在下游库之一中明确指定了此版本的库:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
但是当我在项目中使用我的lib时,它带来了错误的Guava版本:
[INFO] | +- com.google.guava:guava:jar:28.2-android:compile
[INFO] | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
我以详细模式运行 maven dependency:tree
,我看到:
[DEBUG] com.google.guava:guava:jar:28.2-android:compile (version managed from 19.0)
[DEBUG] com.google.guava:failureaccess:jar:1.0.1:compile
[DEBUG] com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[DEBUG] com.google.code.findbugs:jsr305:jar:3.0.2:compile
[DEBUG] org.checkerframework:checker-compat-qual:jar:2.5.5:compile
[DEBUG] com.google.errorprone:error_prone_annotations:jar:2.3.4:compile
是什么version managed from
意思?我的项目版本中没有任何地方28.2-android
。它是如何解决的?
解决方案
表达“版本管理自”意味着版本号设置在<dependencyManagement>
.
这通常在父 POM 中完成。它可以直接指定,也可以通过加载<scope>import</scope>
.
推荐阅读
- python - 每个月有 31 天的时间戳
- python - 如何处理 'str' 对象在我的 django 项目中没有属性 '_meta' 错误
- python - 为在 SQL Server 上创建的 Db 创建表
- java - 队列:入队 vs 出队(填写表格,需要 Shift 吗?)
- javascript - 如何在 ASP MVC 中根据输入的employeeid 和 startdate 将所有数据库列添加/求和到 enddate?
- javascript - 如何通过遍历容器内的所有元素动态地将索引属性和值添加到选定元素
- node.js - Nodejs转换日期格式
- html - td 元素内的垂直对齐字体
- arrays - 在 Matlab 中创建二进制矩阵,报告数量不断增加
- javascript - 将状态为 200 的文件上传到 Google Drive API,但文件在哪里?