diff --git a/ivy/IvyActions.scala b/ivy/IvyActions.scala index e01cfba90..ca493963e 100644 --- a/ivy/IvyActions.scala +++ b/ivy/IvyActions.scala @@ -251,9 +251,11 @@ object IvyActions } def publish(module: ModuleDescriptor, artifacts: Seq[(IArtifact, File)], resolver: DependencyResolver, overwrite: Boolean): Unit = + { + checkFilesPresent(artifacts) try { resolver.beginPublishTransaction(module.getModuleRevisionId(), overwrite); - for( (artifact, file) <- artifacts) if(file.exists) + for( (artifact, file) <- artifacts) resolver.publish(artifact, file, overwrite) resolver.commitPublishTransaction() } catch { @@ -261,6 +263,12 @@ object IvyActions try { resolver.abortPublishTransaction() } finally { throw e } } - + } + private[this] def checkFilesPresent(artifacts: Seq[(IArtifact, File)]) + { + val missing = artifacts filter { case (a, file) => !file.exists } + if(missing.nonEmpty) + error("Missing files for publishing:\n\t" + missing.map(_._2.getAbsolutePath).mkString("\n\t")) + } } final class ResolveException(val messages: Seq[String], val failed: Seq[ModuleID]) extends RuntimeException(messages.mkString("\n"))