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

Reply via email to