From f03b9578125b85536a461c10f82c11437c07e0b3 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Mon, 28 Sep 2020 17:28:44 +0300 Subject: [PATCH] Build: Check ivy repository by empty marker file instead of directory Should fix situations when directory exists but contents are invalid which happens when unpacking process is interrupted. --- buildSrc/prepare-deps/build.gradle.kts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/buildSrc/prepare-deps/build.gradle.kts b/buildSrc/prepare-deps/build.gradle.kts index 5f31b2cb861..b38814675a7 100644 --- a/buildSrc/prepare-deps/build.gradle.kts +++ b/buildSrc/prepare-deps/build.gradle.kts @@ -255,9 +255,8 @@ fun buildIvyRepositoryTask( inputs.files(configuration) outputs.upToDateWhen { - configuration.resolvedConfiguration.resolvedArtifacts.single() - .moduleDirectory() - .exists() + val repoMarker = configuration.resolvedConfiguration.resolvedArtifacts.single().moduleDirectory().resolve(".marker") + repoMarker.exists() } doFirst { @@ -266,8 +265,9 @@ fun buildIvyRepositoryTask( artifact.storeDirectory().cleanStore() - if (moduleDirectory.exists()) { - logger.info("Path ${moduleDirectory.absolutePath} already exists, skipping unpacking.") + val repoMarker = File(moduleDirectory, ".marker") + if (repoMarker.exists()) { + logger.info("Path ${repoMarker.absolutePath} already exists, skipping unpacking.") return@doFirst } @@ -326,6 +326,8 @@ fun buildIvyRepositoryTask( ) } } + + repoMarker.createNewFile() } } }