From be3ff51f0a32ba5e56e01e6dbd53beff281b8eda Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Wed, 30 Apr 2014 14:35:04 +0200 Subject: [PATCH] Do not attempt to publish if no artifacts are present Ivy transactional publishing will abort if no artifacts are published, either because the temporary directory is not being created, or because Ivy will detect an anomalous condition. Therefore, skip publishing altogether if there is nothing to publish to begin with. --- ivy/src/main/scala/sbt/IvyActions.scala | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ivy/src/main/scala/sbt/IvyActions.scala b/ivy/src/main/scala/sbt/IvyActions.scala index 0ad3376d3..716579e0f 100644 --- a/ivy/src/main/scala/sbt/IvyActions.scala +++ b/ivy/src/main/scala/sbt/IvyActions.scala @@ -255,16 +255,18 @@ 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) - resolver.publish(artifact, file, overwrite) - resolver.commitPublishTransaction() - } catch { - case e: Throwable => - try { resolver.abortPublishTransaction() } - finally { throw e } + if (artifacts.nonEmpty) { + checkFilesPresent(artifacts) + try { + resolver.beginPublishTransaction(module.getModuleRevisionId(), overwrite); + for( (artifact, file) <- artifacts) + resolver.publish(artifact, file, overwrite) + resolver.commitPublishTransaction() + } catch { + case e: Throwable => + try { resolver.abortPublishTransaction() } + finally { throw e } + } } } private[this] def checkFilesPresent(artifacts: Seq[(IArtifact, File)])