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

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -