intellij-platform-gradle-plugin icon indicating copy to clipboard operation
intellij-platform-gradle-plugin copied to clipboard

Release 1.6.0 and later fails to work with Gradle's exclusiveContent

Open thetric opened this issue 2 years ago • 0 comments
trafficstars

Describe the bug Release 1.6.0 up to 1.10.0 fail to work with Gradle's exclusiveContent (documentation). Version 1.5.3 works just fine.

17:06:04: Executing 'setupDependencies --stacktrace'...

> Task :setupDependencies FAILED
1 actionable task: 1 executed

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\thetric\Desktop\ij-plugin-repro\build.gradle' line: 13

* What went wrong:
Execution failed for task ':setupDependencies'.
> Failed to query the value of task ':setupDependencies' property 'idea'.
   > Cannot mutate content repository descriptor 'MavenRepo' after repository has been used

[...]

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':setupDependencies'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
[...]
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:462)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:379)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: org.gradle.api.internal.provider.AbstractProperty$PropertyQueryException: Failed to query the value of task ':setupDependencies' property 'idea'.
	at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:136)
	at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:127)
	at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
	at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
	at org.jetbrains.intellij.tasks.SetupDependenciesTask.setupDependencies(SetupDependenciesTask.kt:25)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
[...]
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:462)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:379)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: java.lang.IllegalStateException: Cannot mutate content repository descriptor 'MavenRepo' after repository has been used
	at org.gradle.api.internal.artifacts.repositories.DefaultRepositoryContentDescriptor.assertMutable(DefaultRepositoryContentDescriptor.java:72)
	at org.gradle.api.internal.artifacts.repositories.DefaultRepositoryContentDescriptor.addExclude(DefaultRepositoryContentDescriptor.java:228)
	at org.gradle.api.internal.artifacts.repositories.DefaultRepositoryContentDescriptor.excludeGroup(DefaultRepositoryContentDescriptor.java:188)
	at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler$1.includeGroup(DefaultRepositoryHandler.java:197)
	at jdk.internal.reflect.GeneratedMethodAccessor54.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
	at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
	at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:57)
	at build_7u3r1vv07shhbvv9f0kkl4cq5$_run_closure1$_closure4$_closure6.doCall(C:\Users\thetric\Desktop\ij-plugin-repro\build.gradle:13)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:73)
	at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
	at org.gradle.util.internal.ConfigureUtil.configure(ConfigureUtil.java:106)
[...]
	at org.gradle.api.internal.DefaultDomainObjectCollection.addAll(DefaultDomainObjectCollection.java:320)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection.addAll(DefaultNamedDomainObjectCollection.java:133)
	at org.jetbrains.intellij.utils.DependenciesDownloader.downloadFromMultipleRepositories(DependenciesDownloader.kt:80)
	at org.jetbrains.intellij.utils.DependenciesDownloader.downloadFromRepository(DependenciesDownloader.kt:33)
	at org.jetbrains.intellij.utils.DependenciesDownloader.downloadFromRepository$default(DependenciesDownloader.kt:32)
	at org.jetbrains.intellij.dependency.IdeaDependencyManager.resolveRemote(IdeaDependencyManager.kt:327)
	at org.jetbrains.intellij.IntelliJPlugin$configureSetupDependenciesTask$1$1.call(IntelliJPlugin.kt:1524)
	at org.jetbrains.intellij.IntelliJPlugin$configureSetupDependenciesTask$1$1.call(IntelliJPlugin.kt:114)
	at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:72)
[...]
	at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:133)
	... 120 more
[...]

To Reproduce

plugins {
    id 'java'
    id "org.jetbrains.intellij" version "1.10.0"
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    exclusiveContent {
        forRepository { google() }
        filter { includeGroup('com.android.support') }  // 🐞 causes problems with >= 1.6.0
    }
}
intellij {
    pluginName.set("dummy")
    version.set("2021.2.4")
    type.set("IC")
    updateSinceUntilBuild.set(true)
}
dependencies {
    implementation 'com.android.support:support-annotations:26.1.0'
}

And run ./gradlew compileJava.

Expected behavior The Gradle build should not fail.

Environment:

  • OS: Windows 10 21H2
  • Gradle IntelliJ Plugin Version: 1.6.0 - 1.10.0; 1.13.2
  • Gradle 7.6; 8.0.2

Additional context n/a

thetric avatar Dec 08 '22 16:12 thetric