我遇到的问题是非常标准的:尽管我听说这种方法不受欢迎,但我仍需要在微服务之间建立一些通用的代码库。目前,我有通用代码作为内置在jar中并部署到本地Nexus的独立模块。然后将其用作标准的Maven编译依赖项。我们使用CI来构建所有模块。因此,当我想更改通用代码并直接在微服务中使用它时,我无法做到。当我第一次推送通用模块更改时,我必须经历“两阶段过程”,等到模块建立并接收新版本;只有这样,我才能推送使用该新版本的微服务代码。至少这很尴尬,实际上很烦人。
我可以在Maven中将通用模块用作某种“源依赖项”吗?实现此目的的正确方法是什么?
答案 0 :(得分:0)
重要的问题是:不同的微服务使用通用jar的不同版本是否可以?
如果是:您无需进行更改。您更新普通的jar并分别进行测试(尽可能)。在更新微服务时,可以更新依赖关系(如果需要)。然后,微服务将运行(可能)您的通用jar的不同版本。
如果否:您可以将jar和所有微服务放到一个多模块项目中,但这意味着它们每次都必须一起构建。您无法再更改和构建一个。但是,如果它们依赖同一个版本中的通用代码,则它们紧密耦合,因此,仅构建一个代码可能不是一个好主意。