项目部署的每一段代码都必须具有唯一的版本,这一点至关重要,它可以帮助您跟踪客户端的运行情况,标记部署的更改,并使你的工作变得轻松得多——特别是当你在半夜尝试了解客户端站点上运行的更改时。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的铜官网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
在开发微服务时,它的重要性是之前的两倍。通常,你单独部署的服务,你是知道服务使用哪个依赖项的哪个版本。而许多开发人员面临的需求是如何在依赖项发生变化时自动(或手动)更新它们。
在我的一个项目中有一个单独的存储库,包含所有的服务,并分别构建和部署。而作为我们持续集成和部署的一部分,我们希望只构建被更改的服务或其依赖项之一已更改的服务,并且还要确保很容易向系统添加新服务。
然后我找到了 Versions Maven 插件,它可以用来自动更新 Maven 项目的版本,并确保自动更新所有依赖它的其他项目。
本次示例项目提供了三种服务。service2依赖于service1 、services3 依赖于 service1 和 service2。
每个服务都有一个包含自己POM文件的文件夹,每个子服务都有一个子文件夹。如下图所示:
我需要一个中心位置来管理所有的服务版本,所以我添加了以下到主(聚合器) pom.xml:
. . .1.1-SNAPSHOT 2.1-SNAPSHOT 3.1-SNAPSHOT
当服务版本改变时,我想自动更新服务 pom.xml 文件中的版本,所以我在聚合器 pom.xml 中添加了以下内容:
. . .0 generate-sources none -invalid-
. . .org.codehaus.mojo versions-maven-plugin 2.7 ${version.phase} set update-version false ${service.name}* ${service.version}
我添加了三个新属性,可以通过每个单独的服务进行设置:
接下来在每个服务(service1\pom.xml)添加下面几行:
service1 ${version.update.enable} ${service1.version}
现在每个服务都定义了它的名称(与目录相同),设置 version.phase 使用 version.update.enable(其被设置 generate-sources)和设置该版本的值为在根目录 pom.xml 中定义的属性。
现在,如果你更新版本运行 MVN 编译版本将会自动更新:
使用这种方法,我们能够向所有现有的微服务添加版本控制,并轻松地创建新服务。这样,所有依赖版本的自动版本更新就完成了。
当前文章:在Monorepo中,如何使用Maven对多个微服务进行版本控制?
文章网址:http://www.csdahua.cn/qtweb/news3/520103.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网