This project aims to be a functional replacement for plexus-utils in Maven.
It is not a 100% API compatible replacement though but a replacement with improvements: lots of methods got cleaned up, generics got added and we dropped a lot of unused code.
plexus-utils consisted mostly of code that was forked from various apache projects. maven-shared-utils is based on the original from the apache sources.
maven-shared-utils internally use commons-io. We shade all commons classes into our own private package to prevent classpath clashes.
This is the reason why any public API in maven-shared-utils must avoid to expose commons-io classes directly. Most times it's sufficient to just create an empty subclass and expose that instead.