diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java index 69644e6aefc9..7ef24d61f486 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java @@ -116,19 +116,17 @@ public final class GradleExecutionHelper { @ApiStatus.Internal public static void prepareForExecution( - @NotNull ProjectConnection connection, @NotNull LongRunningOperation operation, @NotNull CancellationToken cancellationToken, @NotNull ExternalSystemTaskId id, @NotNull GradleExecutionSettings settings, - @NotNull ExternalSystemTaskNotificationListener listener + @NotNull ExternalSystemTaskNotificationListener listener, + @Nullable BuildEnvironment buildEnvironment ) { clearSystemProperties(operation); applyIdeaParameters(settings); - BuildEnvironment buildEnvironment = getBuildEnvironment(connection, id, listener, null, settings); - setupJvmArguments(operation, settings, buildEnvironment); setupLogging(settings, buildEnvironment); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleWrapperHelper.kt b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleWrapperHelper.kt index da4c2f00b371..e9cd5f288cf1 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleWrapperHelper.kt +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleWrapperHelper.kt @@ -133,11 +133,18 @@ object GradleWrapperHelper { cancellationToken: CancellationToken ) { SystemPropertiesAdjuster.executeAdjusted(projectPath) { + + /** + * Don't reuse this build environment for the main execution process, because the wrapper task changes used Gradle distribution. + * It affects [org.gradle.tooling.model.build.GradleEnvironment] in [org.gradle.tooling.model.build.BuildEnvironment]. + */ + val buildEnvironment = GradleExecutionHelper.getBuildEnvironment(connection, id, listener, cancellationToken, settings) + val launcher = connection.newBuild() val wrapperSettings = GradleExecutionSettings(settings).apply { tasks = listOf("wrapper") } - GradleExecutionHelper.prepareForExecution(connection, launcher, cancellationToken, id, wrapperSettings, listener) + GradleExecutionHelper.prepareForExecution(launcher, cancellationToken, id, wrapperSettings, listener, buildEnvironment) ExternalSystemTelemetryUtil.getTracer(GradleConstants.SYSTEM_ID) .spanBuilder("ExecuteWrapperTask") .use { launcher.run() } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/modelAction/GradleModelFetchActionRunner.kt b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/modelAction/GradleModelFetchActionRunner.kt index 84814298e562..86daf9d5289e 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/modelAction/GradleModelFetchActionRunner.kt +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/modelAction/GradleModelFetchActionRunner.kt @@ -88,12 +88,12 @@ class GradleModelFetchActionRunner private constructor( private fun T.prepareOperationForSync(): T { GradleExecutionHelper.prepareForExecution( - resolverContext.connection, this, resolverContext.cancellationToken, resolverContext.externalSystemTaskId, resolverContext.settings, - resolverContext.listener + resolverContext.listener, + resolverContext.buildEnvironment ) return this } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/task/GradleTaskManager.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/task/GradleTaskManager.java index f60e46b37794..8fdadb5eb729 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/task/GradleTaskManager.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/task/GradleTaskManager.java @@ -160,7 +160,7 @@ public class GradleTaskManager implements ExternalSystemTaskManager