mirror of https://github.com/sbt/sbt.git
**Problem** Running sbt 2.x with JDK 8 produces a confusing "server was not detected" error because the JDK version check only required JDK 8+ and only ran in the non-native-client path. **Solution** Move java_version detection before the native client decision and add checkJava17ForSbt2 that requires JDK 17+ when sbt major version >= 2. Fixes #8813 * [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbtw) Move JDK version check before native client decision in sbtw and require JDK 17+ when build.properties declares sbt 2.x. * [2.x] fix: Fail early when sbt 2.x is run with JDK < 17 (sbt.bat) Move checkjava before native client decision in sbt.bat and require JDK 17+ when build.properties declares sbt 2.x. * [2.x] test: Add minimumJdkVersion helper and unit tests for sbtw Extract JDK version check logic into Runner.minimumJdkVersion for testability. Add RunnerSpec with tests for sbt 1.x, 2.x, and 3.x version detection. * [2.x] test: Bump fake java to JDK 17 for integration tests The fake java script used by launcher integration tests reported JDK 8. Since sbt 2.x now requires JDK 17+, the citest2 (sbt 2.x) integration tests would fail with the new JDK version check. * Simulate JDK 9+ rt.jar handling in fake java script Instead of silently ignoring --rt-ext-dir (which causes sbt.bat to mkdir on an empty string), properly simulate JDK 9+ behavior by creating a temp directory with java9-rt-ext- prefix and a dummy rt.jar inside it. |
||
|---|---|---|
| .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-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 | ||
| .scalafmt.conf | ||
| AGENTS.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| NOTICE | ||
| PROFILING.md | ||
| README.md | ||
| SUPPORT.md | ||
| build.sbt | ||
| reset.sh | ||
| 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.