我正在尝试将第三方库的快照版本部署到我们的本地存储库(由于遗留的原因,这是旧版本,不再托管在任何在线存储库,目前我不能取代它,因此我必须在本地托管它)。
现在,我想我误解了快照的概念,所以如果有人能纠正我,我将非常感激。我拥有的jar文件名为foo- 0.5.0 -20090612.124.jar,我尝试使用maven deploy:deploy file将其上传到版本0.5.0下的org.bar.foo。我的POM中的版本依赖是0.5.0-SNAPSHOT
每次我将jar文件上传到本地存储库时,文件名中日期后面的数字都会被迭代(即125),但当我运行maven install时,maven会尝试下载具有先前数字(即124)的jar。
那么,有没有办法让maven下载正确的快照版本,或者我不应该将第三方快照文件上传到我们的存储库?
发布于 2009-06-12 09:53:45
您拥有的用例很好。我相信Maven人员推荐的最佳实践是,一旦您将jar的快照版本上传到共享存储库,您应该停止将其视为快照,而应将其视为发布。
这是有意义的,因为您希望人们依赖于该工件的特定版本的。该工件并未在积极开发中,预计在任何时候都不会随意更改,因此应该将其视为一个发布版本。只有一个你给它起了你个人喜欢的名字,而另一个人认为它是快照。
当您请求依赖项foo-0.5.0-SNAPSHOT时,我不相信Maven会查找foo-0.5.0-。我相信它确实会在存储库中查找foo-0.5.0-SNAPSHOT,这就是为什么您找不到它的原因。(这一点不是100%确定的,因为我们不会给快照加时间戳。我们只是在制作时不断地用新版本覆盖-SNAPSHOT jars。)
因此,将foo-0.5.0-20090612.124.jar放入您的第三方存储库(由于上述原因,该存储库应该只包含版本)。然后在您的pom中,显式地引用“发布的”工件foo-0.5.0-20090612.124,一切都应该正常工作。
https://stackoverflow.com/questions/986040
复制相似问题