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 是否可以使用Paket实现快照版本控制?_Maven_Nuget_Paket - Fatal编程技术网

Maven 是否可以使用Paket实现快照版本控制?

Maven 是否可以使用Paket实现快照版本控制?,maven,nuget,paket,Maven,Nuget,Paket,Maven是Java世界中的依赖项管理器。它支持快照版本控制。在Maven语言中,依赖项称为工件。具有固定版本号(例如1.0.1)的工件将只下载一次,因为它永远不会更改。相反,快照版本(如1.0.1-snapshot)将被视为移动目标。这是一个当前的开发副本,在不久的将来可能会发生变化。因此,它必须定期更新。通过快照版本控制,您可以通过工件交付机制(例如使用Nexus或Artifactory)将正在进行的开发的当前状态作为工件提供。与创建快照工件的CI构建相结合,您可以使用它来设置开发基础设施,

Maven是Java世界中的依赖项管理器。它支持快照版本控制。在Maven语言中,依赖项称为工件。具有固定版本号(例如1.0.1)的工件将只下载一次,因为它永远不会更改。相反,快照版本(如1.0.1-snapshot)将被视为移动目标。这是一个当前的开发副本,在不久的将来可能会发生变化。因此,它必须定期更新。通过快照版本控制,您可以通过工件交付机制(例如使用Nexus或Artifactory)将正在进行的开发的当前状态作为工件提供。与创建快照工件的CI构建相结合,您可以使用它来设置开发基础设施,从而可以处理相当复杂的项目

本质上,我认为快照版本控制意味着依赖关系管理器需要检查并下载带有版本标签的工件,该标签以前已经下载过

在.NET世界中,Nuget是首选的包管理器。作为依赖项管理器,它的工作非常糟糕。尤其是,它不支持快照版本控制:

Paket是另一种包管理器。显然,它更适合在实际项目中进行依赖关系管理,但我在文档中找不到有关快照版本控制的内容。

我的问题:是否可以使用Paket实现快照版本控制

关于快照版本控制的进一步解释:
奥拉夫,我不认为这是在Pak.Advices中支持的,但是考虑一下这个备选方案:

1在paket.dependencies中设置灵活的版本限制 2在生成时调用自定义paket更新
我不会说Nuget更喜欢包/依赖关系管理器,而是说Nuget是事实上的包存储库。坦率地说,在一个大型存储库和许多项目文件中只使用nuget来处理依赖关系是一件痛苦的事情。Nuget不支持多平台目标设置,也不像paket那样强制实现版本一致性。如果我理解正确,那么paket无法进行真正的快照版本控制。您的方法要求每个构建都有一个唯一的标记。Olaf,我实际上不清楚快照版本控制,您还可以研究是否有一个额外的源来存储您自己的.nupkg文件,该源甚至可以是当前的存储库。也有关于拥有一个可能相关的dev覆盖文件的讨论。值得您在github上作为问题提交功能请求:
nuget GreatDependency ~> 1.0.1
.paket\paket update nuget GreatDependency