Maven生态中臃肿依赖的综合研究
软件工程
2023-05-08 v1
摘要
构建自动化工具与包管理器对软件开发有深远影响。它们促进了第三方库的重用,支持应用程序代码与其外部依赖之间的清晰分离,并自动化了若干软件开发任务。然而,这些工具的广泛采用带来了与依赖管理相关的新挑战。本文提出一项关于此类挑战之一——臃肿依赖出现的原创研究。臃肿依赖是指构建工具将其与应用程序编译代码打包、但实际上构建和运行应用并不需要到的库。该现象人为增大了构建后二进制文件的体积并增加了维护成本。我们提出一个名为DepClean的工具,用于分析Maven构件中臃肿依赖的存在。我们分析了托管于Maven Central的9,639个Java构件,共包含723,444条依赖关系。我们的核心结果是75.1%的被分析依赖关系是臃肿的。换言之,将Maven构件的依赖数量减少至当前数量的1/4是可行的。我们还对30个知名开源项目进行了定性研究。结果表明开发者关注其依赖并愿意移除臃肿依赖:18/21的提交拉取请求被开发者接受并合并,总计移除了131条依赖。
引用
@article{arxiv.2001.07808,
title = {A Comprehensive Study of Bloated Dependencies in the Maven Ecosystem},
author = {César Soto-Valero and Nicolas Harrand and Martin Monperrus and Benoit Baudry},
journal= {arXiv preprint arXiv:2001.07808},
year = {2023}
}
备注
Manuscript submitted to Empirical Software Engineering (EMSE)