如何将 jar 添加到 SBT 的类路径?

How do I add a jar to SBT's classpath?

我的 class 路径有 Java Play project and I added Snake Yaml

libraryDependencies ++= Seq("org.yaml" % "snakeyaml" % "1.16")

效果很好,我的应用程序可以导入 org.yaml

但是,SBT 无法导入 org.yaml。由于某种原因,它无法访问 libraryDependencies

如果我将 import org.yaml.snakeyaml.Yaml 添加到 project/commons.scala,我在使用 activator compile 编译时会出错。

[error] <path to project>/project/commons.scala:2: object yaml is not a member of package org
[error] import org.yaml.snakeyaml.Yaml
[error]            ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed

如何在 SBT 中访问 make jar?

在项目的源代码中添加依赖项 X 与在构建代码中添加依赖项 X 不同(在 build.sbtproject/*.scala 等内部使用的依赖项。 )

如果这就是您想要做的,那么您需要在项目文件夹中添加库依赖项。

例如,只需在 project/build.sbt 中添加 libraryDependencies ++= Seq("org.yaml" % "snakeyaml" % "1.16")(与在普通 ./build.sbt 文件中添加相反)。

展示这个的最小项目

结构:

.
├── build.sbt
└── project
    └── build.sbt

build.sbt

import org.yaml.snakeyaml.Yaml

name := "hello"

project/build.sbt

libraryDependencies ++= Seq("org.yaml" % "snakeyaml" % "1.16")