更改关系中依赖项版本的最佳实践
Best practice to change version of dependencies in nexus
考虑一个在其他项目中使用的项目,该项目的版本为 1.0
并且存在于 Nexus.
中
之后,在这个项目中做了一些改动。
现在有两种解决方案:
将项目的版本增加到 2.0
,并从 Nexus 中删除版本 1.0
。当开发人员尝试从版本为 1.0
的 Nexus 获取依赖项时,他们将收到一个错误,指出该版本不存在,需要将版本更改为 2.0
.
更改此项目的功能并通知工作人员已完成一些更改,但这根本不是惯例。
Maven 和 Nexus 中是否有任何功能可以简化此任务并使这一切都发生在后端,这样开发人员就什么也做不了,或者这是不可能的?
如果您有一个旧版本的工件,不能再使用它,因为它有一些危险的错误,或者它不能与新的数据库结构或类似的东西一起工作为此,建议将其移动到某个 non-public Nexus 存储库(并将其从构建服务器的本地存储库中删除),这样就没有人可以将它用于发布构建(人们可以将它用于本地构建,但这通常并不危险)。
如果您想管理整个公司的标准版本,最好有一个父 pom 或一些 boms,它们在 <dependenyManagment>
部分中收集版本并且可以由开发人员包含。这样,您只需要通知他们更改 one 版本号(即父 pom 或 bom 之一)而不是许多。
您仍然面临人们不阅读公司新闻通讯的问题。我知道许多 jar 开发人员针对非常旧版本的依赖项编译和测试他们的源代码,而 war/ear(包括 jar)使用新版本的问题。
考虑一个在其他项目中使用的项目,该项目的版本为 1.0
并且存在于 Nexus.
之后,在这个项目中做了一些改动。 现在有两种解决方案:
将项目的版本增加到
2.0
,并从 Nexus 中删除版本1.0
。当开发人员尝试从版本为1.0
的 Nexus 获取依赖项时,他们将收到一个错误,指出该版本不存在,需要将版本更改为2.0
.更改此项目的功能并通知工作人员已完成一些更改,但这根本不是惯例。
Maven 和 Nexus 中是否有任何功能可以简化此任务并使这一切都发生在后端,这样开发人员就什么也做不了,或者这是不可能的?
如果您有一个旧版本的工件,不能再使用它,因为它有一些危险的错误,或者它不能与新的数据库结构或类似的东西一起工作为此,建议将其移动到某个 non-public Nexus 存储库(并将其从构建服务器的本地存储库中删除),这样就没有人可以将它用于发布构建(人们可以将它用于本地构建,但这通常并不危险)。
如果您想管理整个公司的标准版本,最好有一个父 pom 或一些 boms,它们在 <dependenyManagment>
部分中收集版本并且可以由开发人员包含。这样,您只需要通知他们更改 one 版本号(即父 pom 或 bom 之一)而不是许多。
您仍然面临人们不阅读公司新闻通讯的问题。我知道许多 jar 开发人员针对非常旧版本的依赖项编译和测试他们的源代码,而 war/ear(包括 jar)使用新版本的问题。