extensions vs plugins

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

extensions vs plugins


Can someone explain the <extensions> tag found in plugins?

It seems like instead of being a plugin that provides lifecycle
enhancements using this tag, a lot of plugins should rather be extensions,
that can optionally accept configuration on a per project basis.

Take the toolchains plugins. How many people actually build to more than
one JDK in the same reactor run? If I ever need to do that, I'll switch a
I only need the toolchain.xml parsed and a JDK set for all reactor plugins
once. Then I can use the
https://maven.apache.org/enforcer/enforcer-rules/requireJavaVersion.html to
evaluate that JDK, and that will be the end of it.

Instead the toolchains plugin is not thread-safe, so I get a whopping 13
WARNING log lines for every one of my 528 projects. The requireJavaVersion
rule is now useless. The toolchains.xml file cannot be optional
And to top it off, the toolchains plugin doesn't verify that the <jdk> is
actually a JDK and not a JRE. So the compiler will fail to find javac,
issue a warning, and fallback to the system javac. There's no way for me to
protect against this.