How to share version values between project/plugins.sbt and project/Build.scala? -
i share common version variable between sbtplugin , rest of build
here trying:
in project/build.scala
:
object versions { scalajs = "0.5.0-m3" } object mybuild extends build { //use version number }
in plugins.sbt
:
addsbtplugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % versions.scalajs)
results in
plugins.sbt:15: error: not found: value versions addsbtplugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % versions.scalajs)
is there way share version number specification between plugins.sbt
, rest of build, e.g. project/build.scala
?
sbt-buildinfo
if need share version
number between build.sbt
, hello.scala
, do? don't know you, use sbt-buildinfo wrote.
this can configured using buildinfokeys
setting expose arbitrary key values version
or custom string
value. understand not you're asking bear me.
meta-build (turtles way down)
as jacek noted , stated in getting started guide, build in sbt project defined in build located in project
directory 1 level down. distinguish builds, let's define normal build proper build, , build defines proper build meta-build. example, can sbt plugin library of root project in meta build.
now let's question. how can share info between project/build.scala
, project/plugins.sbt
?
using sbt-buildinfo meta-build
we can define level of build creating project/project
, add sbt-buildinfo
(meta-)meta-build.
here files.
in project/project/buildinfo.sbt
:
addsbtplugin("com.eed3si9n" % "sbt-buildinfo" % "0.3.2")
in project/project/dependencies.scala
:
package metabuild object dependencies { def scalajsversion = "0.5.0-m2" }
in project/build.properties
:
sbt.version=0.13.5
in project/buildinfo.sbt
:
import metabuild.dependencies._ buildinfosettings sourcegenerators in compile <+= buildinfo buildinfokeys := seq[buildinfokey]("scalajsversion" -> scalajsversion) buildinfopackage := "metabuild"
in project/scalajs.sbt
:
import metabuild.dependencies._ addsbtplugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % scalajsversion)
in project/build.scala
:
import sbt._ import keys._ import metabuild.buildinfo._ object builds extends build { println(s"test: $scalajsversion") }
so there's bit of boilerplate in project/buildinfo.sbt
, version info shared across build definition , plugin declaration.
if you're curious buildinfo
defined, peek project/target/scala-2.10/sbt-0.13/src_managed/
.
Comments
Post a Comment