An Empirical Study of Version Conflicts in Maven-Based Java Projects
Analyzing Developer Effort, Semantic Versioning Adherence and Resolution Strategies as Observed in Real-World Version Conflicts
V.V. Mihaila (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Sebastian Proksch – Mentor (TU Delft - Software Engineering)
C.R. Paulsen – Mentor (TU Delft - Software Engineering)
George Iosifidis – Graduation committee member (TU Delft - Networked Systems)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Java projects often depend on third-party libraries to support development, but intensive reuse can lead to version conflicts, a common manifestation of dependency hell. This paper presents an empirical study of 124 GitHub pull requests from 85 Maven-based Java projects that addressed such version conflicts. We investigate the phenomenon from three perspectives: developer effort, the role of Semantic Versioning (SemVer) and conflict resolution strategies. Our analysis reveals that activity-based effort metrics are often confounded by unrelated changes and automation, suggesting the need for qualitative validation. Despite widespread use of SemVer syntax, 80% of observed runtime errors resulted from forward incompatibilities not covered by SemVer and even SemVer-compliant library versions occasionally broke backward-compatibility. The most common resolution strategy was library harmonization (67.7% of PRs), often achieved through version alignment techniques. These findings highlight the limitations of relying solely on versioning conventions and emphasize the importance of proactive tools and practices for managing dependencies. All datasets and analysis scripts are publicly available to support further research.