You’re a miracle worker! That fixed it, which exposed a next error:
java.lang.LinkageError: loader constraint violation in interface itable initialization
I was able to track it down to having two jars which each have an
org/eclipse/core/runtime/IStatus.class. Luckily it’s possible to move that plugin to a separate project, so it’s a relatively easy fix.
It would be cool if Gradle plugins offered a higher level of classloader isolation. It’s hard to have plugins interoperate and be isolated without reinventing all the tangle of OSGi. But there are shortcuts you could take, maybe something like this:
id "myplugin" isolated
When supplying the “isolated” flag, that plugin gets its own classloader, with exactly the dependencies in its pom and no dependency mediation between it and the other plugins.
This would mean that no other plugins could cooperate with it. But for cases where plugins are “accidentally cooperating” by smashing each other’s classes when they’re supposed to be independent, it would be a quick and convenient fix.
Just a thought, thanks a ton for your help