Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么maven不将该版本视为最新的快照?_Maven_Dependencies_Release_Snapshot - Fatal编程技术网

为什么maven不将该版本视为最新的快照?

为什么maven不将该版本视为最新的快照?,maven,dependencies,release,snapshot,Maven,Dependencies,Release,Snapshot,我有一个依赖于项目B的项目a。项目B有一段时间的版本号为1.0.0-SNAPSHOT。在发布了版本号为1.0.0的project B之后,我们从存储库中删除了所有旧快照,因为在服务器上保留836个旧快照需要很大的空间。但是,项目A现在失败了,因为它再也找不到项目B的1.0.0版快照了 问题:< /强>为什么Maven不认为1.0.0版本同样作为一个快照使用,而只是把它替代?,因为这是它是如何工作的以及它是如何设计的。实际上,版本1.0.0是版本1.0.0-SNAPSHOT但已发布,这一点并不明

我有一个依赖于项目B的项目a。项目B有一段时间的版本号为1.0.0-SNAPSHOT。在发布了版本号为1.0.0的project B之后,我们从存储库中删除了所有旧快照,因为在服务器上保留836个旧快照需要很大的空间。但是,项目A现在失败了,因为它再也找不到项目B的1.0.0版快照了


<强>问题:< /强>为什么Maven不认为1.0.0版本同样作为一个快照使用,而只是把它替代?

,因为这是它是如何工作的以及它是如何设计的。实际上,版本1.0.0是版本1.0.0-SNAPSHOT但已发布,这一点并不明显,因为对它没有强烈的要求。有些快照版本可能从未发布过,或者最终版本的工件没有快照(因为它们没有部署)


这实际上是两个不同的版本,所以没有您的许可,不应该自动切换它们。事实上,Maven很聪明,可以猜测1.0.0可能是1.0.0-SNAPSHOT的最终版本,并在发布过程中提出这一建议(通过
Maven release plugin
),但只要您开发代码,它就会完全满足您的需要,并且满足您的1.0.0-SNAPSHOT版本要求,正如您在POM中所要求的那样。

发布版并不等同于快照:(快照本质上是“开发”版本,因此Maven不会尝试并明智地获取哪个版本。您必须将快照放回存储库,或者更改项目以依赖于发布版本,特别是1.0.0