为了账号安全,请及时绑定邮箱和手机立即绑定

Maven 依赖项:范围解决问题

Maven 依赖项:范围解决问题

手掌心 2023-06-21 13:45:53
我想对某些依赖项的版本使用范围。但我真的不明白应该如何为我的案例定义它。这是查找结果 -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 人员决定:

依赖范围的解析不应解析为快照(开发版本),除非将其作为显式边界包含在内。除非您明确使用新功能,否则无需针对开发代码进行编译,在该新功能下快照将成为版本规范的下限。


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信