mirror of https://github.com/sbt/sbt.git
**Problem**
ProjectMatrix.baseSettings computes sourceDirectory and unmanagedBase using base.getAbsoluteFile, which resolves relative paths against the JVM's working directory. This works fine within a single build, but breaks for source dependencies - when an external build loaded via ProjectRef(file("ext/lib"), "lib") uses projectMatrix.in(file(".")), the file(".") resolves to the root project's directory instead of ext/lib/.
As a result, the matrix project picks up wrong sources and compilation fails.
**Solution**
Replace base.getAbsoluteFile with IO.resolve((ThisBuild / baseDirectory).value, base). Since ThisBuild / baseDirectory is set per build unit during loading, this correctly resolves against each build's own root directory.
sourceDirectory and unmanagedBase now derive from the resolved projectMatrixBaseDirectory setting.
|
||
|---|---|---|
| .github | ||
| buildfile/src | ||
| client | ||
| contributing-docs | ||
| core-macros/src | ||
| internal | ||
| launch | ||
| launcher-package | ||
| licenses | ||
| lm-core | ||
| lm-coursier | ||
| lm-ivy/src | ||
| main | ||
| main-actions/src | ||
| main-command/src | ||
| main-settings/src | ||
| notes | ||
| project | ||
| protocol/src | ||
| run | ||
| sbt-app/src | ||
| sbt-ivy/src/main/scala/sbt | ||
| sbt-remote-cache/src/main/scala/sbt | ||
| sbtw | ||
| scripted-sbt | ||
| scripts | ||
| server-test/src | ||
| src | ||
| tasks | ||
| tasks-standard | ||
| testing | ||
| util-cache | ||
| util-collection | ||
| util-tracking | ||
| worker/src | ||
| zinc-lm-integration/src | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .java-version | ||
| .jvmopts | ||
| .mailmap | ||
| .sbtopts | ||
| .scala-steward.conf | ||
| .scalafix.conf | ||
| .scalafmt.conf | ||
| AGENTS.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| NOTICE | ||
| PROFILING.md | ||
| README.md | ||
| SUPPORT.md | ||
| build.sbt | ||
| sbt | ||
| sbt-allsources.sh | ||
| sbt.sh | ||
| server.md | ||
README.md
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see https://www.scala-sbt.org/.
sbt 2.x
This is the 2.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implement the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue or a pull request.
If you're looking for an idea for a contribution, issues labeled with good first issue or help wanted might be good starting points.
If you would like to ask questions about sbt, there's sbt channel on Scala Discord, but it would be good to gather questions on Stackoverflow.
license
See LICENSE.