I am attempting to write a plugin that implements a bespoke repository format,
i.e. an alternative to maven/ivy/flatDir.
To do this I have made use of the class ‘org.apache.ivy.core.module.id.ModuleRevisionId’ in the plugin.
However when building the plugin, gradle complains that it has two copies of this class,
java.lang.LinkageError: loader constraint violation: when resolving method “org.gradle.api.internal.artifacts.DefaultModuleVersionIdentifier.newId(Lorg/apache/ivy/core/module/id/ModuleRevisionId;)Lorg/gradle/api/artifacts/ModuleVersionIdentifier;” the class loader (instance of java/net/URLClassLoader) of the current class, …AbstractModuleComponentResolveMetaData, and the class loader (instance of org/gradle/internal/classloader/MutableURLClassLoader) for the method’s defining class, org/gradle/api/internal/artifacts/DefaultModuleVersionIdentifier, have different Class objects for the type org/apache/ivy/core/module/id/ModuleRevisionId used in the signature