project / Build.scala如何使用build.sbt中定义的值?

时间:2014-10-04 09:41:12

标签: scala dependencies sbt

我尝试使用Build.scala构建多项目。 这是我的文件目录:

MyMainPro/
   app/
       controls/
       models/
       views/
   conf/
       <some files>
   modules/
       anotherProject/
             app/
                 controles/
                 models/
                 views/
             conf/
                 <some files>
             build.sbt
   project/
       <project build files>
       Build.scala
   <other directories>

我想从外部Build.scala文件中调用build.sbt中的变量。那可能吗?怎么做。

例如,我的内部build.sbt有一个项目对象:

lazy val pil = (project in file(".")).enablePlugins(PlayScala).settings(scalaVersion := "2.11.2")

如何从我的外部Build.scala文件调用此项目? 我想做类似的事情:

lazy val root  = Project(appName, base = file(".")).enablePlugins(play.PlayScala)
.dependsOn(sil)

我只想根据一些OpenSource项目构建我的项目,并希望更改部分源代码。

我读了http://www.scala-sbt.org/0.13/tutorial/Multi-Project.html 它只包含如何从Build.scala到build.sbt获取变种。 我想做相反的动作。这是从buid.sbt到Build.scala的变种。

1 个答案:

答案 0 :(得分:2)

不,您无法使用build.sbt中的值。但是对于这种情况你不需要;写一下

lazy val root  = Project(appName, base = file(".")).enablePlugins(play.PlayScala).
  dependsOn(RootProject(file("modules/anotherProject")))

(有关源依赖关系的更多信息,请参阅this answer。)