对于REST服务环境,我正在编写REST服务器应用程序以及客户端库,以便在服务器端和客户端使用相同的模型对象。
对于本地开发,如果我可以将本地maven存储库中的最新版本SNAPSHOT作为当前版本包含进来,那就太好了。
在我的pom.xml
中,
<dependency>
<groupId>com.mygroup</groupId>
<artifactId>backoffice-client</artifactId>
<version>LATEST</version>
</dependency>
我的本地存储库包含版本1.0.0-SNAPSHOT
,1.0.0
和1.0.1-SNAPSHOT
。
在这种情况下,导入的版本是1.0.0
,但我希望它是1.0.1-SNAPSHOT
。
在gradle上,这可以通过使用compile(com.mygroup:backoffice-client:+)
来实现。
我已经尝试在maven命令行上设置-DignoreSnapshots=false
,但没有成功。
我该怎么做才能从本地存储库正确加载最新快照?
答案 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的解释是正确的。