我正在使用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
中指定我的依赖项?
答案 0 :(得分:17)
您是否有可能已经检索了项目依赖项,但没有意识到它,因为它们存储在常春藤缓存中?您可以使用命令
从SBT控制台查看托管类路径show managed-classpath
除非项目配置为执行此操作,否则SBT的最新版本不会将托管依赖项存储在项目目录中。如果需要,可以将以下内容添加到build.sbt
文件中:
retrieveManaged := true
这将创建一个~/MyProject/lib_managed/
目录和内容。