From e89062f58d046660010b21d1e8397064528f8b59 Mon Sep 17 00:00:00 2001 From: Alexey Nesterov Date: Tue, 13 Mar 2018 09:31:55 +0000 Subject: [PATCH] Fix disabling of publish task when env property is set (#574) Because of Gradle's project lifecycle, disabling tasks in the script doesn't work as expected, ./gradlew publish will still try to execute :publishMavenJavaPublicationToMavenRepository and fail even if PUBLISH_ARTIFACTS is set to false. To avoid that and make sure all publish tasks are disabled script need to listen for tasks graph event to be ready and then disable the tasks. --- docker/spring-cloud-contract-docker/project/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/spring-cloud-contract-docker/project/build.gradle b/docker/spring-cloud-contract-docker/project/build.gradle index e653879a8d..e7ed26352c 100644 --- a/docker/spring-cloud-contract-docker/project/build.gradle +++ b/docker/spring-cloud-contract-docker/project/build.gradle @@ -105,7 +105,9 @@ String publishArtifacts = getProp("PUBLISH_ARTIFACTS") ?: "true" boolean publishEnabled = Boolean.parseBoolean(publishArtifacts) publish.setEnabled(publishEnabled) -project.tasks.findAll { it.name.startsWith('publish') }*.setEnabled(publishEnabled) +gradle.taskGraph.whenReady { graph -> + graph.allTasks.findAll { it.name.startsWith("publish") }*.setEnabled(publishEnabled) +} String getProp(String propName) { return hasProperty(propName) ?