如何处理复杂的内部jar依赖管理



我们的商店传统上是关于单个大型j2ee应用程序的。然而,我们正朝着许多更狭义的应用程序发展。每个应用程序都需要依赖一定数量的共享代码,这些代码保存在不同的jar文件中。

问题是,当开发人员因为一个应用程序的需要而改变一个jar时,我们可能并不总是准备好部署依赖于同一个jar的应用程序2。因此,我们最终对jar进行了版本控制。随着发行计划变得错综复杂(生活总是让事情变得错综复杂),我们发现我们不断面临着管理这一问题的挑战。

我觉得我们一定是做错了。生活不应该这么复杂。Maven使这类事情变得容易吗?我们一直回避Maven,因为我们的工作环境是这样一个环境,一个工具到互联网上下载软件将会被皱眉,但如果它简化了在项目中构建和管理依赖关系的问题……嗯,也许吧。

不管怎样,有什么建议吗?

如果您喜欢Maven的所有功能,除了与internet通信之外,您应该使用Maven。你所需要做的就是安装一个本地存储库管理器(Nexus, Artifactory等)来控制从互联网上拉入开源的过程,然后剩下的就看你自己了。

还要注意,如果你已经是一个"蚂蚁"商店,你可以从ivy中获得一些依赖缓解。但是,如果Maven自动化发布对您有吸引力,那么ivy没有任何帮助。

然而, Maven只是一个管理依赖关系和版本的工具。它不是灵丹妙药。如果升级"事物B"以应对"事物A"的变化是一项艰巨的工作,也许你真正需要做的是重新思考你对模块化、api和兼容性的态度。如果你把你的组件想象成一个供应商,向希望平稳过渡的客户出售一个库,那么让你的应用程序使用你的组件的新版本可能会少一些痛苦。

我强烈建议您在尝试在生产中使用它之前做一些实验或原型,并获得一些使用该工具的经验,更不用说在试图说服其他人这样做之前了。

最新更新