我遇到的问题是非常标准的:我需要在微服务之间有一些共同的代码基础,尽管我听说这种方法是不可取的。目前,我有公共代码作为单独的模块,被内置到jar中并部署到本地Nexus中。然后将其用作标准maven编译依赖项。我们使用CI来构建所有的模块。因此,当我想要更改公共代码并将其直接用于微服务时,我无法做到这一点。当我第一次推送通用模块更改时,我必须经历“两阶段过程”,直到模块构建并收到新版本;只有这样,我才能推送使用该新版本的微服务代码。这至少很尴尬,其实很烦人。
我是否可以在maven中使用公共模块作为某种“源依赖”?实现这一点的正确方法是什么?
发布于 2018-11-07 09:48:27
重要的问题是:不同的微服务可以使用不同版本的通用jar吗?
如果是的话:你不需要推动改变。您可以更新您的普通jar并单独测试它(尽可能)。在更新微服务时,可以更新依赖项(如果需要的话)。然后,微服务运行(可能)公共jar的不同版本。
如果不是:你可以把你的jar和所有的微服务放在一个多模块的项目中,但是这意味着每次都必须一起构建它们。您不能再改变和构建一个单一的。但是,如果它们依赖于相同版本中的公共代码,那么它们是紧密耦合的,因此只构建一个可能不是一个好主意。
https://stackoverflow.com/questions/53186157
复制相似问题