为微服务设置工件

时间:2015-08-10 05:39:57

标签: java gradle artifactory microservices

所以我目前正在使用gradle在Java中构建多个微服务。比方说,我有4个微服务A,B,C和D. C依赖于A和B& D依赖于A,B和C.只有C和D被释放。

今天:

要构建C,我克隆A,B和C然后在其中所有3个中检出主分支,cd到C,调用" gradle build“,构建A,B和C然后获取詹金斯的C.war。

艺术品设置问题:

  • 让我们说我在每次提交后都会建立A和B并将罐子推到神器中。现在,当C发生变化时,它从神器中获取最新的A和B并构建C.然后将C.war推向神器。
  • 让我们说B的变化与D有关,现在我必须建立D.首先,B重建并推到神器。 C,它依赖于A和B,不会重建。 D从神器中获取A,B和C并构建D.war并被推向神器。
  • 这是OKAY,即C是用A和B&的v1(版本1)构建的。 D使用A的v1,B的v2和C的v1构建。
  • 如果没有,那么将神器用于微服务的标准做法是什么?
  • 如何跨多个分支机构管理微服务?
  • 如何从开发版本管理已发布的版本?

请告诉我如何接近。

...谢谢

1 个答案:

答案 0 :(得分:0)

为什么不创建构建链并对上游和下游项目进行正确配置?理想情况下,所有这些都应该独立构建。 A和B不依赖,因此应该是第一个要构建的。然后是C和最后的D。

因此,A和B是上游项目,C被配置为下游项目和A和B的配置。

类似地,对于D-A,B和C应该被配置为上游项目。

关于查询,

  

这是OKAY,即C是用A和B&的v1(版本1)构建的。 D使用A的v1,B的v2和C10的v1

构建

据我所知,maven将在创建D战争时保留B的后续版本(v1和v2之外)。如果war包含多个版本的B,那么它是一个与类路径相关的更大问题,你需要只有一个正确版本的B。

休息所有流程都是标准的开发实践,到目前为止没有任何偏差。

只需要考虑一件事,让我们说如果要释放C,那么你应该首先发布A和B.

相关问题