【发布时间】:2017-06-14 18:35:07
【问题描述】:
考虑一个在其他项目中使用的项目,该项目的版本为 1.0,并且存在于 Nexus 中。
之后,在这个项目中进行了一些更改。 现在有两种解决方案:
将项目的版本增加到
2.0,并从Nexus中删除版本1.0。当开发者尝试从 Nexus 获取版本为1.0的依赖项时,他们会收到此版本不存在的错误,需要将版本更改为2.0。更改此项目的功能并通知工作人员已完成一些更改,但这根本不是惯例。
Maven 和 Nexus 中是否有任何功能可以简化此任务并使这一切都发生在后端,这样开发人员就无法做任何事情,或者这不可能?
【问题讨论】:
-
为什么要删除1.0?版本控制的目的是禁止更改已发布产品中的内容。假设你可以,两个开发人员甚至不能确信在相同版本中使用相同的库运行完全相同的代码。
-
好的@Tunaki,考虑到我没有删除版本并且我做了一些更改,开发人员如何知道这些更改?我知道如果开发人员第一次从nexus 下载一个jar 存储在
.m2文件夹中,然后他使用这个具有这个功能的jar,所以如果我更改功能并重新安装这个jar,开发人员仍然可以使用旧功能,因为他使用来自 .m2 而不是来自 nexus 服务器的 jar,并且因为 maven 没有更改 jar,因为它总是以相同的 GAV 存在!我认为这是 maven 的政策我错了? -
稳定性是这里的关键词。如果有人使用 1.0 版,他们的构建必须继续工作。也许 1.0 有问题,但没有理由完全删除它。我假设该项目已记录在案,有一个网站等...在那里显示最新版本,发送邮件,交流。
-
是的,我和你在一起@Tunaki,我只是想促进这项任务而已,那么解决方案是什么,或者它仍然是通过消息通知他们的旧方式:(,我想maven 可以做得更好,你对我的建议
-
Maven 不能替代开发人员之间的通信。这从来都不是 Maven 历史上的意图。如果您将新版本部署到 nexus,您必须通知依赖此项目的开发人员。有几种方法可以做到这一点。