paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A longitudinal analysis of bloated Java dependencies

Java 膨胀依赖的纵向分析
FSE Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2021匹配度 2/10 · 该论文是 Java/Maven 依赖膨胀的纵向实证研究,属于软件维护与依赖分析,与用户核心方向(PL→AI、AI→PL、浮点程序分析、贝叶斯程序分析及其与 LLM 的交叉)均无明显关联。虽然涉及依赖分析,但未使用 LLM/Agent,也未涉及浮点或贝叶斯程序分析。引用 43 inbox
César Soto-Valero, Thomas Durieux, Benoit Baudry
crossref: 2026-09-12

AI 速览

一句话:通过追踪 435 个 Java/Maven 项目的演化,揭示膨胀依赖持续增长并带来不必要的维护负担。

本文研究 Java/Maven 生态中“膨胀依赖”的演化与影响:这些第三方库被打包进应用二进制,但运行应用时并不需要。作者分析了 435 个 Java 项目的历史数据,覆盖 48,469 个不同依赖和 31,515 个 Maven 依赖树版本。结果显示,膨胀依赖随时间稳步增加;在所研究的项目中,89.2% 的直接膨胀依赖在所有后续版本中仍保持膨胀,说明开发者可以安全地移除这类依赖。论文进一步发现,开发者执行的依赖更新中有 22% 发生在膨胀依赖上,Dependabot 建议的更新也有类似比例,从而揭示了膨胀依赖导致的无必要维护努力。

问题
研究 Java/Maven 项目中膨胀依赖如何随时间演化,以及它们对依赖维护工作量的影响。
方法
对 435 个 Java 项目的历史 Maven 依赖树进行纵向分析,涵盖 48,469 个不同依赖和 31,515 个版本。
评估
通过统计膨胀依赖随时间的变化、后续版本中的存续比例以及依赖更新中膨胀依赖的占比来量化其影响。
原文摘要(Abstract)

We study the evolution and impact of bloated dependencies in a single software ecosystem: Java/Maven. Bloated dependencies are third-party libraries that are packaged in the application binary but are not needed to run the application. We analyze the history of 435 Java projects. This historical data includes 48,469 distinct dependencies, which we study across a total of 31,515 versions of Maven dependency trees. Bloated dependencies steadily increase over time, and 89.2% of the direct dependencies that are bloated remain bloated in all subsequent versions of the studied projects. This empirical evidence suggests that developers can safely remove a bloated dependency. We further report novel insights regarding the unnecessary maintenance efforts induced by bloat. We find that 22% of dependency updates performed by developers are made on bloated dependencies, and that Dependabot suggests a similar ratio of updates on bloated dependencies.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6364,
  title = {A longitudinal analysis of bloated Java dependencies},
  author = {César Soto-Valero and Thomas Durieux and Benoit Baudry},
  booktitle = {FSE},
  year = {2021},
  doi = {10.1145/3468264.3468589}
}