Build: Don't unpack ivy repo artifacts if target directory exists

This commit is contained in:
Vyacheslav Gerasimov
2020-05-18 13:57:45 +03:00
parent bca8e96362
commit 5bca9c488e
2 changed files with 12 additions and 18 deletions
-1
View File
@@ -73,7 +73,6 @@ rootProject.apply {
val isTeamcityBuild = kotlinBuildProperties.isTeamcityBuild val isTeamcityBuild = kotlinBuildProperties.isTeamcityBuild
val intellijUltimateEnabled by extra(kotlinBuildProperties.intellijUltimateEnabled) val intellijUltimateEnabled by extra(kotlinBuildProperties.intellijUltimateEnabled)
val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false) val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false)
val verifyDependencyOutput by extra( getBooleanProperty("kotlin.build.dependency.output.verification") ?: isTeamcityBuild)
extra["intellijReleaseType"] = when { extra["intellijReleaseType"] = when {
extra["versions.intellijSdk"]?.toString()?.contains("-EAP-") == true -> "snapshots" extra["versions.intellijSdk"]?.toString()?.contains("-EAP-") == true -> "snapshots"
+12 -17
View File
@@ -16,7 +16,6 @@ plugins {
base base
} }
val verifyDependencyOutput: Boolean by rootProject.extra
val intellijUltimateEnabled: Boolean by rootProject.extra val intellijUltimateEnabled: Boolean by rootProject.extra
val intellijReleaseType: String by rootProject.extra val intellijReleaseType: String by rootProject.extra
val intellijVersion = rootProject.extra["versions.intellijSdk"] as String val intellijVersion = rootProject.extra["versions.intellijSdk"] as String
@@ -34,7 +33,6 @@ if (intellijVersionDelimiterIndex == -1) {
val platformBaseVersion = intellijVersion.substring(0, intellijVersionDelimiterIndex) val platformBaseVersion = intellijVersion.substring(0, intellijVersionDelimiterIndex)
logger.info("verifyDependencyOutput: $verifyDependencyOutput")
logger.info("intellijUltimateEnabled: $intellijUltimateEnabled") logger.info("intellijUltimateEnabled: $intellijUltimateEnabled")
logger.info("intellijVersion: $intellijVersion") logger.info("intellijVersion: $intellijVersion")
logger.info("androidStudioRelease: $androidStudioRelease") logger.info("androidStudioRelease: $androidStudioRelease")
@@ -272,25 +270,22 @@ fun buildIvyRepositoryTaskAndRegisterCleanupTask(
dependsOn(configuration) dependsOn(configuration)
inputs.files(configuration) inputs.files(configuration)
if (verifyDependencyOutput) { outputs.upToDateWhen {
outputs.dir( configuration.resolvedConfiguration.resolvedArtifacts.single()
provider { .moduleDirectory()
configuration.resolvedConfiguration.resolvedArtifacts.single().moduleDirectory() .exists()
}
)
} else {
outputs.upToDateWhen {
configuration.resolvedConfiguration.resolvedArtifacts.single()
.moduleDirectory()
.exists()
}
} }
doFirst { doFirst {
configuration.resolvedConfiguration.resolvedArtifacts.single().run { val artifact = configuration.resolvedConfiguration.resolvedArtifacts.single()
val moduleDirectory = moduleDirectory() val moduleDirectory = artifact.moduleDirectory()
val artifactsDirectory = File(moduleDirectory(), "artifacts") if (moduleDirectory.exists()) {
logger.info("Path ${moduleDirectory.absolutePath} already exists, skipping unpacking.")
return@doFirst
}
with(artifact) {
val artifactsDirectory = File(moduleDirectory, "artifacts")
logger.info("Unpacking ${file.name} into ${artifactsDirectory.absolutePath}") logger.info("Unpacking ${file.name} into ${artifactsDirectory.absolutePath}")
copy { copy {
val fileTree = when (extension) { val fileTree = when (extension) {