如何在具有Build.scala的SBT 0.11项目中设置托管依赖项

时间:2011-11-03 01:44:30

标签: scala sbt

我正在使用SBT 0.11构建一个简单的Scala项目。

所有代码文件都在~/MyProject/src/main/scala/

~/MyProject/build.sbt如下


name := "MyProject"

version := "1.0"

scalaVersion := "2.9.1"

libraryDependencies ++= Seq(
  "mysql" % "mysql-connector-java" % "5.1.+",
  "c3p0" % "c3p0" % "0.9.1.2",
  "org.apache.commons" % "commons-lang3" % "3.0.1",
  "commons-lang" % "commons-lang" % "2.6",
  "javassist" % "javassist" % "3.12.1.GA"
)

~/MyProject/project/Build.scala如下


import sbt._

object MyProjectBuild extends Build {
  lazy val MyProject = Project("MyProject", file("."))
}

这似乎工作得很好。该项目确实编译并运行。项目名称设置正确(如果我不使用Build.scala,那么名称似乎看起来像“default - ????”,尽管它在build.sbt中指定)。

但问题是依赖项似乎不起作用 - update命令不下载任何内容。如何解决这个问题?在这种情况下,是否需要在Build.scala而不是build.sbt中指定我的依赖项?

1 个答案:

答案 0 :(得分:17)

您是否有可能已经检索了项目依赖项,但没有意识到它,因为它们存储在常春藤缓存中?您可以使用命令

从SBT控制台查看托管类路径
show managed-classpath

除非项目配置为执行此操作,否则SBT的最新版本不会将托管依赖项存储在项目目录中。如果需要,可以将以下内容添加到build.sbt文件中:

retrieveManaged := true

这将创建一个~/MyProject/lib_managed/目录和内容。