Hi, I develop some Maven plugins, and am struggling trying to find documentation on which dependencies are provided by a particular version of Maven, and when I should use a newer compatible version as the dependency in my plugin.
For example, I have a plugin which declares 3.2.5 as a prerequisite and has the following dependencies: maven-core (3.2.5, provided) maven-plugin-api (3.2.5, provided) maven-plugin-annotations (3.5, provided) plexus-utils (3.0.24, provided) However, I don't actually know which versions of these plugins are provided by which Maven versions, and whether or not I could use this plugin with an earlier version of Maven. Perhaps I could set the prerequisite to 3.0.5 and it would work fine? Ideally, every version of Maven would release with a guide for plugin developers, to let developers know which versions of the dependencies they should use, but I can't find anything like that. Is there a useful guide somewhere? A related problem that could be covered by a developer guide: which maven library code is executed during plugin execution, and which are executed during plugin compilation? (In other words, when is it safe to user a newer version of a particular dependency, without breaking that plugin's compatibility with a particular version of Maven?) Perhaps this really boils down to: "How stable are the APIs for these Maven libraries used for Maven plugins?" Hopefully, there's already a useful guide out there, or maybe just a few simple guidelines which can be shared with me. Otherwise, I fear this might be another "dependency hell" issue. Thanks for any guidance you can provide for managing plugin dependencies, Christopher
