Dealing with Java linking problems
Sep 1, 2015Petter Måhlén

Summary
This post introduces the MissingLink plugin, a hack week project developed at Spotify to address Java dependency hell. It explains the root causes of runtime errors like NoSuchMethodError and NoClassDefFoundError stemming from Maven's dependency resolution and Java's single class loader limitation. The post details the functionality of the MissingLink plugin, which navigates bytecode to verify method existence at runtime, and discusses its limitations, including false positives and issues with reflection. It also reviews other non-solutions and almost-solutions like using the latest versions, semantic versioning, the Maven Enforcer Plugin, the Shade Plugin, and integration testing.