一句话:提出 DepUpdater,自动升级 Java 依赖以最小化技术滞后,同时避免不兼容与冗余依赖。
复用开源软件可避免重复造轮子,但依赖过时会导致技术滞后,带来缺失的新功能以及本已修复的缺陷或漏洞。然而,保持依赖最新并不容易:升级可能引入不兼容问题而破坏项目,或产生冗余依赖而无谓增大项目体积,这阻碍了开发者主动升级。为此,本文提出 DepUpdater,目标是在自动化依赖升级中尽可能降低技术滞后,同时确保兼容性并消除冗余依赖。与现有依赖管理工具的比较表明,DepUpdater 能更有效地减少技术滞后,并兼顾兼容性与冗余修剪。消融研究进一步显示,在升级过程中考虑修剪需求有助于缓解不兼容问题。最后,作者利用 DepUpdater 研究了传递依赖升级对客户端兼容性的影响,为后续研究提供了启示。
Re-using open-source software (OSS) can avoid reinventing the wheel, but failing to keep it up-to-date can lead to missing new features and persistent bugs or vulnerabilities that have already been resolved. The use of outdated OSS libraries introduces technical lag, necessitating timely upgrades. However, maintaining up-to-date libraries is challenging, as it may introduce incompatibility issues that break the project or redundant dependencies that unnecessarily increase the size of the project. These issues discourage developers from upgrading libraries, highlighting the need for a fully automated solution that balances version upgrades, reduces technical lag, ensures compatibility, and avoids redundant dependencies. To this end, we propose DepUpdater, which ensures that upgrades minimize technical lag as much as possible while avoiding incompatibility issues and redundant dependencies. The comparison with existing dependency management tools demonstrates that DepUpdater more effectively reduces technical lag while ensuring compatibility and pruning redundant dependencies. Additionally, an ablation study highlights the potential benefits of considering pruning requirements during upgrades to mitigate incompatibility issues. Finally, leveraging DepUpdater, we investigate the impact of transitive dependency upgrades on client compatibility, providing insights for future research.
@inproceedings{paperbot11917,
title = {Minimizing Breaking Changes and Redundancy in Mitigating Technical Lag for Java Projects},
author = {Rui Lu and Lyuye Zhang and Kaixuan Li and Min Zhang and Yixiang Chen},
booktitle = {ICSE},
year = {2026},
doi = {10.1145/3744916.3773233}
}