[.com速译]至关重要的是,你的项目部署的每一段代码都有唯一的版本,可以帮助你跟踪客户端的运行情况,标记部署的变化,让你的工作变得更加轻松-特别是当您试图了解半夜在客户端站点上运行的更改时。在开发微服务时,它的重要性翻倍。通常,您单独部署一项服务,并且您知道该服务使用哪个依赖项的哪个版本。而许多开发人员面临的需求是如何在依赖项发生变化时自动(或手动)更新依赖项。在我的一个项目中,有一个包含所有服务的存储库,并且是单独构建和部署的。相反,作为我们持续集成和部署的一部分,我们只想构建已更改的服务或它们的依赖项之一已更改,并确保向系统添加新服务很容易。然后我找到了VersionsMaven插件,它可以用来自动更新一个Maven项目的版本,并确保所有依赖它的其他项目都自动更新。此示例项目提供三种服务。service2依赖于service1,services3依赖于service1和service2。每个服务都有一个包含自己的POM文件的文件夹,每个子服务都有一个子文件夹。如下图所示:我需要一个中心位置来管理所有服务版本,因此我将以下内容添加到主要(聚合器)pom.xml:。..1.1-SNAPSHOT2.1-SNAPSHOT3.1-SNAPSHOT当服务版本发生变化时,我想在服务pom.xml文件中自动更新版本,所以我在聚合器pom.xml中添加了以下内容:。..0generate-sourcesnone-无效-。..org.codehaus.mojoversions-maven-plugin2.7<执行><阶段>${version.phase}set更新版本false${service.name}*${service.version}我添加了三个新属性,可以由每个单独的服务设置:version.phase-我需要运行的版本插件运行阶段它在编译之前,所以我定义了一个名为version.update的新属性。默认为不存在的阶段,以便版本控制仅针对我需要它们运行的??服务运行。service.name-服务名称。因为你希望所有的子项目都有相同的版本,所以这里使用了${service.name}。service.version-设置服务版本。接下来,将以下行添加到每个服务(service1\pom.xml):service1${version.update.enable}${service1.version}现在每个服务都定义了它的名称(与目录相同),使用version.update.enable设置version.phase(设置生成-sources)并将版本值设置为根pom.xml中定义的属性。现在,如果您更新版本并运行MVN构建,版本将自动更新:使用这种方法,我们能够为所有现有微服务添加版本控制并轻松创建新微服务。这样就完成了所有依赖版本的自动版本更新。【翻译稿件,合作网站转载请注明原译者和出处.com】