我想为某些依赖项的版本使用范围。但是我真的不知道如何为我的案例定义它。
这是查找结果-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)
可以解决问题,但是我真的不明白为什么我需要对边界如此具体,这是否是一个好习惯?定义此类范围的正确的方法是什么?
答案 0 :(得分:1)
Maven对SNAPSHOT版本的对待与对“正常”版本的对待不同。
通常只能在本地存储库中找到SNAPSHOT。如果要使用远程回购中的SNAPSHOT,则必须明确告知Maven,该回购提供了SNAPSHOT版本。
牢记这一区别,Maven folks have decided
依赖项范围的解析不应解析为快照(开发版本),除非将其作为显式边界包括在内。除非您显式使用新功能,否则无需针对开发代码进行编译,在该新功能下,快照将成为您的版本规范的下限。