【发布时间】:2017-02-15 06:35:41
【问题描述】:
我们有一个微服务架构,整个项目如下:
+- Utilities
+- Service A REST
+- Service A Backend
+- Service B REST
+- Service B Backend
...
+- Service X REST
+- Service X Backend
每一个都是一个独立的Maven项目,可以独立开发。
当然,有些项目可能不得不使用另一个项目中的类(例如,为了能够在错误消息中返回相应的 Exception 类)。
因此其中一个项目可能具有以下依赖项:
Service A backend
+- dependency 1
+- dependency 2
...
\- Utilities
\- Service B backend
在标准部署中,我们将使用 Maven 存储库并简单地将最新的 jars 添加为依赖项。问题出在开发过程中:如果我们对Service B backend 的依赖项Service A backend 进行更改,我们不能简单地做mvn compile Service-A-backend,因为Service B backend 不会被重新编译。在开发过程中对每个项目都这样做非常容易出错。
Eclipse 可以通过将项目放在构建路径上来解决这个问题,但我们不想将自己绑定到 IDE,并且希望能够通过 Maven 本身解决问题。
你能在上面的场景中使用 Maven,这样你就可以将上面的 Service B backend 列为 source 依赖项,如果我们 compile 或 package Service A backend,它的本地源依赖项也会被重新编译有什么变化吗?如果没有,你能用gradle 或ant 做吗?
【问题讨论】: