Maven无法从本地存储库加载SNAPSHOT

时间:2018-08-23 10:29:48

标签: java maven

对于REST服务环境,我正在编写REST服务器应用程序以及客户端库,以便在服务器端和客户端使用相同的模型对象。

对于本地开发,如果我可以将本地maven存储库中的最新版本SNAPSHOT作为当前版本包含进来,那就太好了。

在我的pom.xml中,

<dependency>
    <groupId>com.mygroup</groupId>
    <artifactId>backoffice-client</artifactId>
    <version>LATEST</version>
</dependency>

我的本​​地存储库包含版本1.0.0-SNAPSHOT1.0.01.0.1-SNAPSHOT

在这种情况下,导入的版本是1.0.0,但我希望它是1.0.1-SNAPSHOT

在gradle上,这可以通过使用compile(com.mygroup:backoffice-client:+)来实现。

我已经尝试在maven命令行上设置-DignoreSnapshots=false,但没有成功。

我该怎么做才能从本地存储库正确加载最新快照?

2 个答案:

答案 0 :(得分:1)

那是因为您使用的单词 SNAPSHOT ,它是Maven的关键字。

here所述, Maven与所有其他人对待SNAPSHOT限定符的方式不同。如果版本号后接-SNAPSHOT,则Maven会将其视为关联的MajorVersion,MinorVersion或IncrementalVersion的“尚未发布”版本。

因此,对于Maven而言,“快照”不是最新的稳定版本,而当您告诉他采用最新版本时,该版本正在寻找。 / p>

答案 1 :(得分:1)

您的解决方法是将确切的版本号添加到您的依赖项中。

<dependency>
    <groupId>com.mygroup</groupId>
    <artifactId>backoffice-client</artifactId>
    <version>1.0.1-SNAPSHOT</version>
</dependency>

关于为什么当您添加LATEST时它不会自动加载的问题,@ Leviand的解释是正确的。