Jörg Schaible wrote: > Maybe it's also time to think about more fine grained artifacts. With Maven > the dependency management is no longer that worse. We could have > > collections-x.y.jar > collections-functor-x.y.jar > > with the latter providing the stuff of collections depending on functor. > This will not work for all kind dependencies between the commons stuff > (e.g. helper classes from commons-io), but there are some components now, > where an currently optional dep simply means additional functionality (e.g. > in configuration or vfs). > > Opinions?
I considered suggesting exactly that approach, but until now chose to stay out of the discussion. I think it would work well, provided that dependencies to be isolated in this way are independent of each other. In other words, collections-functor is fine, and (hypothetical) collections-logging and collections-math are ok, but collections-functor-logging-math is bad. In cases where such isolation is not feasible (one project provides core dependencies of another) I come down on the side of simply accepting the dependency rather than copying the needed classes and thereby assuming maintenance responsibility for the copies. Regards, John