2014-11-23 45 views
1

在同一个目录中有两行模块,并且我希望依赖另一个模块。我知道如何在项目目录中的Scala文件中执行此操作,但是,我希望build.sbt能够自行执行相同的工作。这里是一个没有工作的代码,将有望给您沟通一下我的意思是:让build.sbt定义对另一个本地库的依赖关系

name := "foo" 

libraryDependencies += ProjectRef(file("../bar"), "bar") 

错误说:

没有隐含的Append.Value [序列[sbt.ModuleID],SBT。 ProjectRef]找到了,所以sbt.ProjectRef不能被附加到Seq [sbt.ModuleID]。

回答

2

我倾向于选择project/Build.scala而不是build.sbt的构建定义。但对象Build中的以下代码也应该为标准build.sbt做。

//Build.scala 
import sbt._ 

object Build extends Build { 
    lazy val projectA = project.in(file("a")) 
    lazy val projectB = project.in(file("b")).dependsOn(projectA) 
} 

或:

//your root build.scala 
name := "test" 

version := "1.0" 

scalaVersion := "2.11.4" 

val projectA = project.in(file("a")) 
val projectB = project.in(file("b")).dependsOn(projectA) 
+0

正如我所说,我完全知道如何使用Scala的文件做在'project'目录。我的问题是如果我们可以在没有这些文件的情况下做到这一点,但只有'build.sbt'文件。谢谢你的回答,你好, – 2014-11-23 21:01:23

+0

如上所述,它也适用于build.sbt。假设您有一个包含两个子项目projectA和projectB的项目结构。只是将上述对象的内容插入到你的根目录build.sbt – Moritz 2014-11-24 09:48:33

+0

哦,谢谢你的编辑:)现在我明白你的意思了! – 2014-11-25 02:38:03