如何在 SBT/Scala build 的构建时访问库依赖项?
How to access library dependencies at build-time in SBT/Scala build?
例如,假设我有一个生成 "managed" 源代码的文件 project/CodeGeneration.scala
,并假设对象 (CodeGeneration
) 需要利用第三方库 --说 jsoup...
import org.jsoup._
object CodeGeneration {
def generateCode = /* Generate code using jsoup... */
}
简单地在 build.sbt
中的 libraryDependencies
中添加一行 jsoup
并不能解决问题;它会导致编译错误,抱怨缺少 jsoup
object/namespace.
那么,(如何)可以从 "meta" 代码访问此依赖项——生成其他代码的代码?
似乎解决方案是利用 sbt 的 "recursive" 特性,并在 project
目录中放置一个额外的 build.sbt
文件。因此,例如,project/build.sbt
可能如下所示:
libraryDependencies += "org.jsoup" % "jsoup" % "1.11.2"
有更多详细信息 in sbt's official documentation。
例如,假设我有一个生成 "managed" 源代码的文件 project/CodeGeneration.scala
,并假设对象 (CodeGeneration
) 需要利用第三方库 --说 jsoup...
import org.jsoup._
object CodeGeneration {
def generateCode = /* Generate code using jsoup... */
}
简单地在 build.sbt
中的 libraryDependencies
中添加一行 jsoup
并不能解决问题;它会导致编译错误,抱怨缺少 jsoup
object/namespace.
那么,(如何)可以从 "meta" 代码访问此依赖项——生成其他代码的代码?
似乎解决方案是利用 sbt 的 "recursive" 特性,并在 project
目录中放置一个额外的 build.sbt
文件。因此,例如,project/build.sbt
可能如下所示:
libraryDependencies += "org.jsoup" % "jsoup" % "1.11.2"
有更多详细信息 in sbt's official documentation。