Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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和snapshots?_Maven_Svn_Versioning_Nexus_Conventions - Fatal编程技术网

Maven和snapshots?

Maven和snapshots?,maven,svn,versioning,nexus,conventions,Maven,Svn,Versioning,Nexus,Conventions,我正在从事一个快速项目,其中,我直接从事一个不断变化的模块。其他人直接依赖于该模块,因此,我删除了公共接口,并将其作为0.0-SNAPSHOT部署到本地Nexus存储库中以供使用 现在我几乎已经完成了模块的第一次迭代,我已经尝试重新部署更新的工件。在阅读有关快照的文章时,其他人声称快照应该代表当前的主干。这是真的吗 Maven在重新部署时自动增加我的快照版本-因此,从0.0-snapshot,我仍然处于0.0-snapshot,只是,它是相同快照的第3或第4次迭代。我应该什么时候转到0.1-SN

我正在从事一个快速项目,其中,我直接从事一个不断变化的模块。其他人直接依赖于该模块,因此,我删除了公共接口,并将其作为
0.0-SNAPSHOT
部署到本地Nexus存储库中以供使用

现在我几乎已经完成了模块的第一次迭代,我已经尝试重新部署更新的工件。在阅读有关快照的文章时,其他人声称快照应该代表当前的主干。这是真的吗

Maven在重新部署时自动增加我的快照版本-因此,从
0.0-snapshot
,我仍然处于
0.0-snapshot
,只是,它是相同快照的第3或第4次迭代。我应该什么时候转到
0.1-SNAPSHOT
?是否有一个插件可以用来自动更改版本,而不是手动编辑我的pom


在集成测试和我们的第一个系统版本部署之后,
1.0-release
,我的模块应该如何进展?我是否应该将模块移动到
1.0-SNAPSHOT
并继续?是否有一种方法应该遵循,还是由开发人员自行决定?

X.Y.Z-SNAPSHOT符号标识X.Y.Z发布之前的临时版本,因此,除非您发布X.Y.Z,否则通常不会从X.Y.Z-SNAPSHOT移动到X.Y.Z+1-SNAPSHOT。如果您遵守此约定,则可以帮助您完成完整的发布过程

请注意,最常见的Maven约定使用不带任何后缀的3号发布标识符(即no-release)。后缀通常用于区分同一版本的变体


Maven都是关于约定的,所以如果不阅读它,你几乎不可能走得很远:这是一个很好的起点。

要在不手动更新的情况下更新POM版本,你可以看看(尽管我自己写了一个小脚本来做POM更新,因为我发现发布插件不适合我的工作流程)

然后是你的版本号问题。这更像是一个发布程序问题。通常情况下,计划发布由版本号中主要或次要版本的增量表示。快照版本表示正在进行某些发布。例如,对于您的案例,我更喜欢这样做:

假设我计划以0.1版本发布第一次迭代,那么我将以0.1-SNAPSHOT版本在SCM中制作我的头部主干(例如SVN中的主干)。这意味着所有的开发实际上都在为版本0.1的发布做出贡献。完成后,我将POM版本从0.1-SNAPSHOT更新到0.1,执行版本0.1的实际版本(包括版本分支、标记、部署工件),然后将POM版本更改为下一个计划版本的快照(例如,0.2-SNAPSHOT)

类似地,在发布1.0(或您的示例中的1.0-RELEASE)之后,head trunk中的POM版本应更新为下一版本的快照,例如1.1-snapshot


请记住,如果某个版本已经发布,则不应再存在该版本的快照。

了解maven解释快照的方式是为了消除任何疑问

摘自

例如,如果您的项目有一个“1.0-SNAPSHOT”版本,并且您将此项目的工件部署到Maven存储库中,那么如果您要在2008年2月7日晚上11:08部署一个版本,Maven会将此版本扩展到“1.0-20080207-230803-1”

首先,我建议坚持maven约定,将您的版本更改为
0.1
as
maven原型:generate
provide

因此,
SNAPSHOT
可以帮助其他人轻松了解活动项目的最新信息。在每次编译中,他们的项目都会检查
快照
依赖项的新版本(基于他们在
.m2
目录中的伪日期时间版本)


当您完成
0.1-SNAPSHOT
的工作后,您将部署
0.1
并启动
0.2-SNAPSHOT
1.0-SNAPSHOT

感谢您的个人帐户。不过,一定有一些指导原则。只是想补充一点关于“后缀”。在Maven中有两种“足够”,一种叫做“分类器”,作为您提到的,同一工件变体的标识符。这不是真正的版本。另一个“后缀”称为“限定符”,放在版本中。这主要是作为发布阶段的标识符。一些著名的限定符有:快照、ALPHA、BETA等。