NoSuchMethod exception in Gradle Plugin


(Roman Schulte) #1

Hi there,

I’m currently working on a plugin which should bring P2 support to Gradle. I know, that the dependency resolution process of Gradle is not meant to be extended. But I already had a first successful run in a test environment.

How ever, after I pushed the plugin to the Gradle Plugin portal and added it to a distinct project, the resolution process did fail. Because I wanted to avoid to write my own metadata types (which seems rather complex), I reused the DefaultMutableIvyModuleResolveMetadata class from the Gradle internals. As mentioned before this was not a Problem in my test run. But when I tried to build my real project, i got following exception:

java.lang.NoSuchMethodError: org.gradle.internal.component.external.model.DefaultMutableIvyModuleResolveMetadata.<init>(Lorg/gradle/api/artifacts/ModuleVersionIdentifier;Lorg/gradle/api/artifacts/component/ModuleComponentIdentifier;)V

This is the constructor I use to create the metadata object. Can someone explain my, why it’s not accessible to Gradle? It’s a public constructor of a public class.

(Roman Schulte) #2

Never mind, I used two different versions of Gradle and the constructor I used was removed in the newer one…