Hi, Can someone explain the <extensions> tag found in plugins? https://maven.apache.org/guides/mini/guide-using-extensions.html
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 profile/property. 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 https://issues.apache.org/jira/browse/MTOOLCHAINS-29 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. Thanks,