From 5dac114ba49f6f0b179a626192c1b226933ec831 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sat, 16 Apr 2016 15:16:13 +0200 Subject: [PATCH] Small fix Should make updateSbtClassifiers not fail if some javadoc or source JARs cannot be found. --- .../scala-2.10/coursier/CoursierPlugin.scala | 11 ++++++-- .../src/main/scala-2.10/coursier/Tasks.scala | 25 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala b/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala index 548a6077f..436f20171 100644 --- a/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala +++ b/plugin/src/main/scala-2.10/coursier/CoursierPlugin.scala @@ -41,8 +41,15 @@ object CoursierPlugin extends AutoPlugin { coursierFallbackDependencies <<= Tasks.coursierFallbackDependenciesTask, coursierCache := Cache.default, update <<= Tasks.updateTask(withClassifiers = false), - updateClassifiers <<= Tasks.updateTask(withClassifiers = true, ignoreArtifactErrors = true), - updateSbtClassifiers in Defaults.TaskGlobal <<= Tasks.updateTask(withClassifiers = true, sbtClassifiers = true), + updateClassifiers <<= Tasks.updateTask( + withClassifiers = true, + ignoreArtifactErrors = true + ), + updateSbtClassifiers in Defaults.TaskGlobal <<= Tasks.updateTask( + withClassifiers = true, + sbtClassifiers = true, + ignoreArtifactErrors = true + ), coursierProject <<= Tasks.coursierProjectTask, coursierProjects <<= Tasks.coursierProjectsTask, coursierPublications <<= Tasks.coursierPublicationsTask, diff --git a/plugin/src/main/scala-2.10/coursier/Tasks.scala b/plugin/src/main/scala-2.10/coursier/Tasks.scala index 7c4c3e175..6e4fcd47f 100644 --- a/plugin/src/main/scala-2.10/coursier/Tasks.scala +++ b/plugin/src/main/scala-2.10/coursier/Tasks.scala @@ -554,21 +554,36 @@ object Tasks { .sortBy(_._1) for ((type0, errors) <- groupedArtifactErrors) { - log.error(s"${errors.size} $type0") + def msg = s"${errors.size} $type0" + if (ignoreArtifactErrors) + log.warn(msg) + else + log.error(msg) - if (!ignoreArtifactErrors || verbosityLevel >= 1) - for (err <- errors) - log.error(" " + err) + if (!ignoreArtifactErrors || verbosityLevel >= 1) { + if (ignoreArtifactErrors) + for (err <- errors) + log.warn(" " + err) + else + for (err <- errors) + log.error(" " + err) + } } if (!ignoreArtifactErrors) throw new Exception(s"Encountered ${artifactErrors.length} errors (see above messages)") } + // can be non empty only if ignoreArtifactErrors is true + val erroredArtifacts = artifactFilesOrErrors.collect { + case (artifact, -\/(_)) => + artifact + }.toSet + def artifactFileOpt(artifact: Artifact) = { val res = artifactFiles.get(artifact) - if (res.isEmpty) + if (res.isEmpty && !erroredArtifacts(artifact)) log.error(s"${artifact.url} not downloaded (should not happen)") res