ben-manes / gradle-versions-plugin

Gradle plugin to discover dependency updates
Apache License 2.0
3.84k stars 199 forks source link

"Failed to resolve" when using in multi-module project and gradle 5.6 #326

Open sunilson opened 5 years ago

sunilson commented 5 years ago

When I start the task in the root project, I get these errors before the report is generated:

Failed to resolve :module1:debugAndroidTestCompileClasspath
Failed to resolve :module1:debugCompileClasspath
Failed to resolve :module1:debugUnitTestCompileClasspath
Failed to resolve :module1:releaseCompileClasspath
Failed to resolve :module1:releaseUnitTestCompileClasspath
Failed to resolve :module2:debugAndroidTestCompileClasspath
Failed to resolve :module2:debugCompileClasspath
Failed to resolve :module2:debugUnitTestCompileClasspath
Failed to resolve :module2:releaseCompileClasspath
Failed to resolve :module2:releaseUnitTestCompileClasspath
....

I am defining my dependencies in a buildSrc module via the Kotlin dsl and then use those defined dependencies in all other modules. Could this cause that error? Is this a known error and can it be fixed?

Thanks!

ben-manes commented 5 years ago

You probably need to look at the debug log (—debug) and ensure you’re on the latest version of this plugin. That should hint to the underlying failure.

jmfayard commented 5 years ago

@ben-manes I have the Failed to resolve errors in a project that do pretty advanced multi-project stuff here https://github.com/LouisCAD/Splitties/pull/206

> Task :dependencyUpdates
Failed to resolve :tests:debugAndroidTestCompileClasspath
Failed to resolve :tests:debugCompileClasspath
Failed to resolve :tests:debugUnitTestCompileClasspath
Failed to resolve :tests:releaseCompileClasspath
Failed to resolve :tests:releaseUnitTestCompileClasspath
... much more

The report.json contains then only 39 dependencies while the project has much more than that. The buildScan finds 157 dependencies resolved in 57 projects across 14472 configurations from 7 repositories, 35 dependencies failed to resolve

I have it here as gist https://gist.github.com/jmfayard/8e23c0a3c7a531e2db5a34408926d500

And the build scan, with and without --debug

https://scans.gradle.com/s/zf2bjekli6vgi

https://scans.gradle.com/s/b3xr52x752lrw

It uses my plugin version 0.4.2, which means your plugin version 0.22.0

Could you have a look?

ben-manes commented 4 years ago

It looks like a bad assumption with dependency constraints, which I have not used before. We copy the original configuration before mucking around with dependency versions. Gradle treats this like a detached configuration, but constraints are looking it up strictly and failing. I don’t know if it is a bug in Gradle, Android, or your build logic being too restrictive.

Failed to resolve :tests:debugAndroidTestCompileClasspath
org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'debugAndroidTestCompileClasspathCopy' not found.
...
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyConstraintHandler.add(DefaultDependencyConstraintHandler.java:63)
        at com.android.build.gradle.internal.dependency.ConstraintHandler.execute(ConstraintHandler.kt:51)
xsveda commented 4 years ago

Same here:

Failed to resolve :app:releaseUnitTestCompileClasspath
org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'releaseUnitTestCompileClasspathCopy' not found.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:159)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:332)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:149)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:62)
        at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyConstraintHandler.add(DefaultDependencyConstraintHandler.java:63)

It is a pretty standard Android project with 20 modules. We are working on more projects and all are now suffering with these exceptions.

ben-manes commented 4 years ago

Is this Gradle version specific? Can you try a few versions to see if it’s a regression on their end?

ben-manes commented 4 years ago

Same with Android plugin versions I suppose.

LouisCAD commented 4 years ago

I suspect this is related to Gradle metadata, especially when using dependencies that publish gradle metadata.

On Thu, Aug 29, 2019, 06:51 Ben Manes notifications@github.com wrote:

Same with Android plugin versions I suppose.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ben-manes/gradle-versions-plugin/issues/326?email_source=notifications&email_token=ABVG6BNZ7T3KY6HYLPDTR5TQG5IWZA5CNFSM4IOSCOS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5NHFKQ#issuecomment-526021290, or mute the thread https://github.com/notifications/unsubscribe-auth/ABVG6BJE2VKDO3HATAUX6TLQG5IWZANCNFSM4IOSCOSQ .

xsveda commented 4 years ago

I tried to gradually revert back to Gradle 5.2 / AGP 3.3 / Versions Plugin 0.18.0 but still seeing the errors.

ben-manes commented 4 years ago

I think you’re best option is to have the Android and Gradle teams debug this. It looks like an oversight on how constraints and configuration copying interacts.

https://android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/ConstraintHandler.kt

k3muri84 commented 4 years ago

Similar on my end, can't resolve the gradle modules on latest version and gradle 5.6. I get:

13:12:45.981 [ERROR] [org.gradle.api.Project] Failed to resolve :modules:whatever:testDebugRuntimeOnly
roovy.lang.MissingMethodException: No signature of method: com.github.benmanes.gradle.versions.updates.resolutionstrategy.ComponentSelectionRulesWithCurrent.configureEach() is applicable for argument types: (build_4sy0x8wtrbzad6tzhju8iew4w$_run_closure5$_closure17$_closure18) values: [build_4sy0x8wtrbzad6tzhju8iew4w$_run_closure5$_closure17$_closure18@709d7d23]
ben-manes commented 4 years ago

@echorebel that’s a different issue, please open a new bug (cc @ghus-raba)

k3muri84 commented 4 years ago

@ben-manes i think it's related or the same. I also get

Failed to resolve :module1
Failed to resolve :module2
...

the Error i posted is just further down int the log with debug flag on

ben-manes commented 4 years ago

@echorebel Can you try the latest version of the resolutionStrategy in the readme? We had a typo which might be to blame. If you can show your snippet in the build it could be an easy fix

k3muri84 commented 4 years ago

@ben-manes tried, thx i get again the report and it looks fine. Still get the Failed to resolve :.. though and execution time was quite high: - 11m

ben-manes commented 4 years ago

I have noticed that some repositories, like Sonatype’s snapshots repo, will rate limit queries and slow down resolution. Gradle now lets you specify that a repository only applies to certain artifacts to speed up searches. You might look at the info/debug logs if it becomes frustrating.

shining-cat commented 4 years ago

Hello @ben-manes , I have to report the same errors as @jmfayard : I have a multi-modules Android-kotlin project, in which I keep all dependencies paths as constants in the buildSrc module. I set up the gradle-versions-plugin in my Android (kotlin) project-level gradle file (applying the dependency and the plugin) I have the following Failed to resolve errors for each module :debugAndroidTestCompileClasspath :debugCompileClasspath :debugUnitTestCompileClasspath :releaseCompileClasspath :releaseUnitTestCompileClasspath Gradle version is 6.0

Sadly, I am not yet fluent enough with Gradle to investigate this further alone, but feel free to direct me in any direction that might help if you need more inforation :)

piegamesde commented 4 years ago

I have the same problem, but in a really simple Java library/application, nothing fancy going on with sub-projects etc.:

> Task :dependencyUpdates
Failed to resolve ::annotationProcessor
Failed to resolve ::api
Failed to resolve ::apiElements
Failed to resolve ::archives
Failed to resolve ::compile
Failed to resolve ::compileClasspath
Failed to resolve ::compileOnly
Failed to resolve ::default
Failed to resolve ::implementation
Failed to resolve ::runtime
Failed to resolve ::runtimeClasspath
Failed to resolve ::runtimeElements
Failed to resolve ::runtimeOnly
Failed to resolve ::shadow
Failed to resolve ::testAnnotationProcessor
Failed to resolve ::testCompile
Failed to resolve ::testCompileClasspath
Failed to resolve ::testCompileOnly
Failed to resolve ::testImplementation
Failed to resolve ::testRuntime
Failed to resolve ::testRuntimeClasspath
Failed to resolve ::testRuntimeOnly
Failed to resolve ::classpath

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

No dependencies found.

Gradle release-candidate updates:
 - Gradle: [6.5 -> 6.5.1 -> 6.6-rc-4]

I can reproduce this in another project as well, this time with Gradle 6.3.

ben-manes commented 4 years ago

You can check the info log (--info) as likely there is an exception causing the resolution to fail.

piegamesde commented 4 years ago

Thanks for the quick reply. I was using an old version of the plugin (and it obviously couldn't tell me that it was outdated). On the latest version, everything works fine (even on a multi-module project). But if you're still interested, this was the exception (thrown for every "Failed to resolve"):

org.gradle.api.InvalidUserCodeException: The closure provided is not valid as a rule for 'ComponentSelectionRules'.
    at org.gradle.internal.rules.DefaultRuleActionAdapter.createFromClosure(DefaultRuleActionAdapter.java:42)
    at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultComponentSelectionRules.all(DefaultComponentSelectionRules.java:93)
    at org.gradle.api.artifacts.ComponentSelectionRules$all.call(Unknown Source)
    at com.github.benmanes.gradle.versions.updates.Resolver$_addRevisionFilter_closure5$_closure10.doCall(Resolver.groovy:153)
    at jdk.internal.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
    at groovy.lang.Closure.call(Closure.java:405)
    at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:50)
    at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:122)
    at com.sun.proxy.$Proxy64.execute(Unknown Source)
    at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultResolutionStrategy.componentSelection(DefaultResolutionStrategy.java:271)
    at jdk.internal.reflect.GeneratedMethodAccessor402.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap.invoke(PojoMetaMethodSite.java:200)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at com.github.benmanes.gradle.versions.updates.Resolver$_addRevisionFilter_closure5.doCall(Resolver.groovy:152)
    at jdk.internal.reflect.GeneratedMethodAccessor379.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
    at groovy.lang.Closure.call(Closure.java:405)
    at groovy.lang.Closure.call(Closure.java:421)
    at org.gradle.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
    at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolutionStrategy(DefaultConfiguration.java:1062)
    at org.gradle.api.artifacts.Configuration$resolutionStrategy$2.call(Unknown Source)
    at com.github.benmanes.gradle.versions.updates.Resolver.addRevisionFilter(Resolver.groovy:151)
    at jdk.internal.reflect.GeneratedMethodAccessor378.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
    at com.github.benmanes.gradle.versions.updates.Resolver.createLatestConfiguration(Resolver.groovy:126)
    at jdk.internal.reflect.GeneratedMethodAccessor377.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
    at com.github.benmanes.gradle.versions.updates.Resolver.resolve(Resolver.groovy:75)
    at com.github.benmanes.gradle.versions.updates.Resolver$resolve.call(Unknown Source)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates.resolve(DependencyUpdates.groovy:77)
    at jdk.internal.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:351)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:64)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:184)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates$_resolveProjects_closure6$_closure10.doCall(DependencyUpdates.groovy:70)
    at jdk.internal.reflect.GeneratedMethodAccessor374.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
    at groovy.lang.Closure.call(Closure.java:405)
    at groovy.lang.Closure.call(Closure.java:421)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3574)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3559)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3659)
    at org.codehaus.groovy.runtime.dgm$87.invoke(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:244)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates$_resolveProjects_closure6.doCall(DependencyUpdates.groovy:69)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
    at groovy.lang.Closure.call(Closure.java:405)
    at groovy.lang.Closure.call(Closure.java:421)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3574)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3559)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3659)
    at org.codehaus.groovy.runtime.dgm$87.invoke(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:244)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates.resolveProjects(DependencyUpdates.groovy:66)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:168)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates.run(DependencyUpdates.groovy:54)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdates$run.call(Unknown Source)
    at com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask.dependencyUpdates(DependencyUpdatesTask.groovy:71)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:727)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:694)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:568)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:553)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:536)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:276)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:265)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at java.base/java.util.Optional.orElseGet(Optional.java:362)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at java.base/java.util.Optional.map(Optional.java:258)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at java.base/java.util.Optional.orElseGet(Optional.java:362)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:192)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:184)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.gradle.internal.rules.RuleActionValidationException: Rule may not have an input parameter of type: org.gradle.api.artifacts.ComponentMetadata.
    at org.gradle.internal.rules.DefaultRuleActionValidator.validateInputTypes(DefaultRuleActionValidator.java:49)
    at org.gradle.internal.rules.DefaultRuleActionValidator.validate(DefaultRuleActionValidator.java:42)
    at org.gradle.internal.rules.DefaultRuleActionAdapter.createFromClosure(DefaultRuleActionAdapter.java:40)
    ... 213 more
ben-manes commented 4 years ago

Rule may not have an input parameter of type: org.gradle.api.artifacts.ComponentMetadata.

That sounds like #270 (fixed in v22), if by chance you were on a version prior to Gradle 6 compatibility.

I was using an old version of the plugin (and it obviously couldn't tell me that it was outdated)

If no error occurs, it actually does! 😄