首页 > 解决方案 > 如何根据根项目拥有 SBT 子项目?

问题描述

我正在尝试在简单的 SBT 单项目构建(链接)中使用mdoc 。mdoc 要求我为文档创建一个子项目,但我想避免将所有代码移动到子文件夹中。我试图创建一个依赖于根项目的 docs 子项目:

lazy val core = project.in(file("."))
lazy val docs = project.in(file("docs")).dependsOn(core)

然而,这使得 SBT 尝试为我的根项目找到一个 JAR(显然没有找到它):

(sbt) core ❯ docs/compile
[info] Updating
[info] Resolved  dependencies
[warn]
[warn]  Note: Unresolved dependencies path:
[error] stack trace is suppressed; run last docs / update for the full output
[error] (docs / update) sbt.librarymanagement.ResolveException: Error downloading net.ruippeixotog:akka-testkit-specs2_2.12:0.3.0-SNAPSHOT
[error]   Not found
[error]   Not found
[error]   not found: /Users/rui/.ivy2/local/net.ruippeixotog/akka-testkit-specs2_2.12/0.3.0-SNAPSHOT/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/net/ruippeixotog/akka-testkit-specs2_2.12/0.3.0-SNAPSHOT/akka-testkit-specs2_2.12-0.3.0-SNAPSHOT.pom
[error] Total time: 0 s, completed Dec 28, 2019 11:27:50 PM

对于其他子项目部门(例如,如果我让core项目指向另一个文件夹),SBT 将直接类路径依赖项添加到子项目的target/文件夹中。为什么根项目的处理方式不同?还有另一种方法可以使这项工作吗?

标签: scalasbt

解决方案


推荐阅读