eBay的遗留领域业务库的Mavenization战略

This topic introduces the methodology to mavenize more than 3,000 business libraries built by a legacy system. Those libraries together build up a huge dependency graph with sub-belonging dependencies. The article highlights the challenges during the migration process, including how to test the libraries in build and runtime level.

本专题介绍了对一个遗留系统构建的3000多个业务库进行mavenize的方法。这些库共同构建了一个巨大的依赖图,其中有一些次要的依赖关系。文章强调了迁移过程中的挑战,包括如何在构建和运行时层面测试这些库。

On eBay, there are a large number of site businesses, which we support across 3,000+ libraries for different business domains (e.g. buying, selling and shipping). Those libraries are still using old code structures, and owners cannot use the standard maven approach to develop and release on their own.They have to use a specific IDE to build and compile, which is cumbersome to set up. Later, they need to go through a full codebase central build process for release.This way of development is stale and given the fact that these libraries are requested to become maven native style, a strategy must be evaluated thoroughly in order for more than 3,000 libraries to be mavenized and verified. 

在eBay上,有大量的网站业务,我们支持不同业务领域(如购买、销售和运输)的3000多个库。那些库仍在使用旧的代码结构,所有者不能使用标准的maven方法来自行开发和发布。他们必须使用特定的IDE来构建和编译,设置起来很麻烦。后来,他们需要经过一个完整的代码库中央构建过程进行发布。这种开发方式已经过时,考虑到这些库被要求成为maven原生风格,必须彻底评估一种策略,以便让3000多个库被maven化并得到验证。

A flowchart describing the maven repository

Strategy

战略

Mavenization is not simply generating a pom.xml. It must be able to decouple the full codebase central build into an independent project build with the same output. The legacy build system has existed for more than 20 years. It has become a monolithic system that few people have knowledge on how it works. It also requires a huge amount of extra effort to find and investigate every little difference that lies in between the two build systems in order to automate the mavenization process. Meanwhile, after manvenization, the team should address solid and practical automation designs to verify the libraries. 

Mavenization不是简单地生成一个pom.xml。它必须能够将整个代码库的中央构建解耦为具有相同输出的独立项目构建。传统的构建系统已经存在了20多年。它已经...

开通本站会员,查看完整译文。

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.125.1. UTC+08:00, 2024-05-17 14:18
浙ICP备14020137号-1 $访客地图$