> > Is this not the whole point of releasing versioned binaries? It just >> means a couple of extra steps when I upgrade. First, change the >> coordinates (group + version instead of just the version) and a quick >> refactor of my imports. Every modern IDE makes this easy. >> >> >> This is not much about direct dependencies, but about transitive > dependencies. Exclusions in Maven are horrible. You never want to exclude a > dependency. What you really want is to substitute it, so that it can belong > to the dependency resolution process. >
I believe it is about transitive dependencies. By changing both the coordinates *and package names* accordingly, you now can have packages from older codehaus dependencies (both transitive or direct) that will not clash with packages from the newly named apache (direct or transitive) dependencies. I may be missing something but I believe it eliminates the specific transitive inclusion issue since old and new can coexist. On Fri, Mar 31, 2017 at 1:32 AM, Cédric Champeau <cedric.champ...@gmail.com> wrote: > >> >> >> Is this not the whole point of releasing versioned binaries? It just >> means a couple of extra steps when I upgrade. First, change the >> coordinates (group + version instead of just the version) and a quick >> refactor of my imports. Every modern IDE makes this easy. >> >> >> This is not much about direct dependencies, but about transitive > dependencies. Exclusions in Maven are horrible. You never want to exclude a > dependency. What you really want is to substitute it, so that it can belong > to the dependency resolution process. >