pekko/project/Publish.scala
Martynas Mickevičius 22334da2a1 =pro upgrade to latest sbt and add first auto plugins
* RootSettings plugin contains settings for root project
* other auto plugins that are meant only for root project depend on RootSettings
* other auto plugins that are meant for every project are enabled by default reducing boilerplate
2014-11-30 15:34:59 +02:00

61 lines
1.9 KiB
Scala

/**
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
*/
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 := "Typesafe Inc.",
organizationHomepage := Some(url("http://www.typesafe.com")),
publishMavenStyle := true,
pomIncludeRepository := { x => false },
defaultPublishTo := crossTarget.value / "repository"
)
def akkaPomExtra = {
<inceptionYear>2009</inceptionYear>
<scm>
<url>git://github.com/akka/akka.git</url>
<connection>scm:git:git@github.com:akka/akka.git</connection>
</scm>
<developers>
<developer>
<id>akka-contributors</id>
<name>Akka Contributors</name>
<email>akka-dev@googlegroups.com</email>
<url>https://github.com/akka/akka/graphs/contributors</url>
</developer>
</developers>
}
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
}