首页 > 解决方案 > 如何在 SBT/Scala 构建中访问库依赖项?

问题描述

例如,假设我有一个project/CodeGeneration.scala生成“托管”源代码的文件,并假设 object ( CodeGeneration) 需要利用第三方库——比如jsoup ...

import org.jsoup._

object CodeGeneration {
  def generateCode = /* Generate code using jsoup... */
}

jsoup简单地在你的libraryDependenciesin中添加一行build.sbt是不行的。它会导致编译错误,抱怨缺少jsoup对象/命名空间。

那么,(如何)可以从“元”代码中访问这种依赖关系——生成其他代码的代码?

标签: scalabuildsbtmetaprogramming

解决方案


似乎解决方案是利用 sbt 的“递归”性质,并build.sbt在目录中放置一个附加文件project。因此,例如,project/build.sbt可能看起来像这样:

libraryDependencies += "org.jsoup" % "jsoup" % "1.11.2"

sbt 的官方文档中有更多细节。


推荐阅读