, , Typesafe, . ( .)
, libraryDependencies, . , -, . project/plugins.sbt project/Build.scala?
, sbt-buildinfo, - . , -. , , Ivy -, scala -dist externalDependencyClasspath in BogusConfig. # 1.
//buildinfo.sbt
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.3.2")
//Dependencies.scala
package metabuild
import sbt._
object Dependencies {
def scalaDistVersion = sys.props("project.version")
}
object Configs {
lazy val BogusConfig = config("bogus")
}
/plugins.sbt
import metabuild.Dependencies._
import metabuild.Configs._
lazy val continuationPluginVersion = taskKey[String]("version of the continuation plugin")
lazy val build = (project in file(".")).
configs(BogusConfig).
settings(inConfig(BogusConfig)(Defaults.configSettings): _*).
settings(buildInfoSettings: _*).
settings(addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.6.4"): _*).
settings(
resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven",
libraryDependencies += "org.scala-lang" % "scala-dist" % scalaDistVersion % BogusConfig,
sourceGenerators in Compile <+= buildInfo,
buildInfoKeys := Seq[BuildInfoKey](
"scalaDistVersion" -> scalaDistVersion,
continuationPluginVersion
),
buildInfoPackage := "metabuild",
continuationPluginVersion := {
val bogusClasspath = (externalDependencyClasspath in BogusConfig).value
val f = (bogusClasspath find { _.data.getName contains "continuations-plugin" }).get.data
f.getName.replaceAllLiterally("scala-continuations-plugin_" + scalaDistVersion + "-", "").replaceAllLiterally(".jar", "")
}
)
build.sbt
import metabuild.BuildInfo._
// versionWithGit
version := scalaDistVersion
scalaVersion := version.value
libraryDependencies += "org.scala-lang" % "scala-dist" % version.value
autoCompilerPlugins := true
libraryDependencies +=
compilerPlugin("org.scala-lang.plugins" % ("scala-continuations-plugin_" + version.value) % continuationPluginVersion)
scalacOptions += "-P:continuations:enable"