/** * Copyright (C) 2009-2017 Lightbend Inc. */ package akka import sbt._ import sbt.Keys._ import java.io.File object Publish extends AutoPlugin { val defaultPublishTo = settingKey[File]("Default publish directory") override def trigger = allRequirements override lazy val projectSettings = Seq( crossPaths := false, pomExtra := akkaPomExtra, publishTo := akkaPublishTo.value, credentials ++= akkaCredentials, organizationName := "Lightbend Inc.", organizationHomepage := Some(url("http://www.lightbend.com")), publishMavenStyle := true, pomIncludeRepository := { x ⇒ false }, defaultPublishTo := crossTarget.value / "repository") def akkaPomExtra = { 2009 akka-contributors Akka Contributors akka-dev@googlegroups.com https://github.com/akka/akka/graphs/contributors } private def akkaPublishTo = Def.setting { sonatypeRepo(version.value) orElse localRepo(defaultPublishTo.value) } private 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" } private def localRepo(repository: File) = Some(Resolver.file("Default Local Repository", repository)) private def akkaCredentials: Seq[Credentials] = Option(System.getProperty("akka.publish.credentials", null)).map(f ⇒ Credentials(new File(f))).toSeq } /** * For projects that are not to be published. */ object NoPublish extends AutoPlugin { override def requires = plugins.JvmPlugin override def projectSettings = Seq( publishArtifact := false, publishArtifact in Compile := false, publish := {}, skip in publish := true, publishLocal := {} ) }