我想对某些依赖项的版本使用范围。但我真的不明白应该如何为我的案例定义它。这是查找结果 -maven-metadata-nexus.xml文件。<versioning> <latest>0.1.0-SNAPSHOT</latest> <versions> <version>0.0.13-SNAPSHOT</version> <version>0.0.14-SNAPSHOT</version> <version>0.0.15-SNAPSHOT</version> <version>0.0.16-SNAPSHOT</version> <version>0.0.17-SNAPSHOT</version> <version>0.1.0-SNAPSHOT</version> </versions> <lastUpdated>20190826092951</lastUpdated></versioning>我想导入最新的 0.1.x 依赖项,所以我认为以这种方式编写范围就可以了<dependency> <groupId>my.group.id</groupId> <artifactId>my-artifact</artifactId> <version>[0.1, 0.2)</version></dependency>然而,maven 说我的工件没有可用的版本。定义范围可以[0.1.0-SNAPSHOT, 0.2)解决问题,但我真的不明白为什么我需要如此具体的边界,这是否是一个好的做法。定义此类范围的正确方法是什么?
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
Maven 对待 SNAPSHOT 版本的方式与“普通”版本不同。
“正常”(在存储库中发布)版本通常是不可变的。它无法更新或删除,无论您何时访问它仍然是相同的。
SNAPSHOT 版本与此相反。他们可以随时更改(想想正在进行的工作)。
通常,快照只能在您的本地存储库中找到。如果你想使用来自远程仓库的 SNAPSHOT,你必须明确地告诉 Maven 仓库提供 SNAPSHOT 版本。
考虑到这一区别,Maven 人员决定:
依赖范围的解析不应解析为快照(开发版本),除非将其作为显式边界包含在内。除非您明确使用新功能,否则无需针对开发代码进行编译,在该新功能下快照将成为版本规范的下限。
添加回答
举报
0/150
提交
取消