diff --git a/project/Publish.scala b/project/Publish.scala index 1a545531b9..3c1b3dc148 100644 --- a/project/Publish.scala +++ b/project/Publish.scala @@ -67,13 +67,27 @@ object Publish { } def akkaPublishTo: Initialize[Option[Resolver]] = { - defaultPublishTo { default => - val property = Option(System.getProperty("akka.publish.repository")) - val repo = property map { "Akka Publish Repository" at _ } - repo orElse Some(Resolver.file("Default Local Repository", default)) + (defaultPublishTo, version) { (default, v) => + akkaPublishRepository orElse + sonatypeRepo(v) orElse + Some(Resolver.file("Default Local Repository", default)) } } + def sonatypeRepo(version: String): Option[Resolver] = { + Option(sys.props("publish.maven.central")) filter (_.toLowerCase == "true") map { _ => + val nexus = "https://oss.sonatype.org/" + if(version endsWith "-SNAPSHOT") ("snapshots" at nexus + "content/repositories/snapshots") + else ("releases" at nexus + "service/local/staging/deploy/maven2") + } + } + + + def akkaPublishRepository: Option[Resolver] = { + val property = Option(System.getProperty("akka.publish.repository")) + property map { "Akka Publish Repository" at _ } + } + def akkaCredentials: Seq[Credentials] = { val property = Option(System.getProperty("akka.publish.credentials")) property map (f => Credentials(new File(f))) toSeq