sbt, the interactive build tool
Go to file
Ethan Atkins 73cfd7c8bd Don't leak the sbt metabuild classpath in run/test
Prior to this commit, it was difficult to prevent the sbt metabuild
classpath from leaking into the runtime and test classpaths. The biggest
issue is that the test-inferface jar was located in the metabuild
classpath. We tried to prevent leakage using the DualClassLoader, but
this was an ugly solution that did not seem to work reliably. The fix is
to modify the actual sbt metabuild classloader provided by the sbt
launcher.

To do this, I add a new classloader SbtMetaClassLoader that isolates the
test-interface jar from the rest of the classpath. I modify xMain to
create a new AppConfiguration that uses this new classloader and
use reflection to invoke the sbt main method using the new classloader.

Not only do I think that this is a much saner solution than DualLoaders,
I accidentally fixed #4575 with this change.
2019-04-02 20:53:37 -07:00
.github Fix CONTRIBUTING and link to it 2018-09-04 23:25:42 -04:00
core-macros/src/main/scala/sbt/internal/util/appmacro Support inputs in dynamic tasks 2019-03-30 16:39:10 -07:00
internal Don't use usingTerminal 2019-03-28 20:37:49 -07:00
launch Adds sbt.boot.lock sysprop to opt-out 2018-02-08 13:02:39 +00:00
licenses move remaining pieces of sbt subproject to sbt_pending and fix notices 2010-09-21 21:55:50 -04:00
main Don't leak the sbt metabuild classpath in run/test 2019-04-02 20:53:37 -07:00
main-actions/src Avoid NPE on Run.<init> 2019-02-22 10:26:10 +10:00
main-command/src Improve watch messages 2019-03-30 16:39:10 -07:00
main-settings/src Add StateTransform class 2019-03-30 16:39:10 -07:00
notes Implement sequential[B](tasks: Seq[Initialize[Task[B]]]) and remove useless comment outs 2018-09-19 20:54:18 -04:00
project sbt-whitesource 0.1.14 2019-04-01 17:25:09 +02:00
protocol/src/main [sbt-server] LSP completions support 2018-10-11 13:34:40 +01:00
run Close test and run classloaders 2019-04-02 20:53:37 -07:00
sbt/src Don't leak the sbt metabuild classpath in run/test 2019-04-02 20:53:37 -07:00
scripted-plugin/src/main/scala/sbt -Xfatal-warnings in most subprojects 2018-09-18 11:47:55 -04:00
scripted-sbt-old/src/main/scala/sbt/test Update header 2018-09-14 04:53:36 -04:00
scripted-sbt-redux Add better error message if run fails 2019-04-02 20:53:37 -07:00
src/main/conscript 1.2.0 2018-07-30 00:56:36 -04:00
tasks open up ExecuteProgress, and adds a few keys 2019-03-19 00:42:46 -04:00
tasks-standard Lint Transform.scala 2019-01-31 10:53:07 -08:00
testing Add better error message if run fails 2019-04-02 20:53:37 -07:00
vscode-sbt-scala Bump node modules for security fixes 2019-02-22 10:51:54 -05:00
.appveyor.yml Disable supershell in CI 2019-03-30 11:51:47 -07:00
.gitattributes remove gittatributes, assume core.autocrlf=false 2018-06-26 17:38:05 +03:00
.gitignore adding a fatjar release (aka sbt-big) to the build 2018-11-07 08:37:49 +00:00
.java-version Configure JVM 1.8 in .java-version 2016-10-07 08:48:23 -05:00
.sbtopts Use .sbtopts to increase the RAM 2018-06-25 19:40:15 -04:00
.scalafmt.conf Improve code clarity with danglingParentheses = true 2018-04-24 16:09:49 +01:00
.travis.yml Disable supershell in CI 2019-03-30 11:51:47 -07:00
CONTRIBUTING.md fix branch name in CONTRIBUTING 2018-09-10 16:18:40 +02:00
LICENSE Apache License 2.0 2018-09-14 03:38:58 -04:00
NOTICE Apache License 2.0 2018-09-14 03:38:58 -04:00
PROFILING.md fix typo 2018-07-08 22:18:57 +09:00
README.md update README. s/1.0.x/1.x/ 2018-02-13 10:00:50 +09:00
SUPPORT.md Split support into SUPPORT.md 2018-04-25 14:55:09 +01:00
build.sbt Print consistent version 2019-03-23 09:33:18 -07:00
reset.sh 1.0.3-SNAPSHOT 2017-09-16 15:52:58 -04:00
sbt-allsources.sh Bump underlying modules to latest 2017-03-23 12:41:24 -04:00
server.md setting query is "sbt/setting" 2017-10-03 01:45:06 -04:00

README.md

Gitter Chat

sbt

sbt is a build tool for Scala, Java, and more.

For general documentation, see http://www.scala-sbt.org/.

sbt 1.x

This is the 1.x series of sbt. The source code of sbt is split across several Github repositories, including this one.

  • sbt/io hosts sbt.io module.
  • sbt/util hosts a collection of internally used modules.
  • sbt/librarymanagement hosts sbt.librarymanagement module that wraps Ivy.
  • sbt/zinc hosts Zinc, an incremental compiler for Scala.
  • sbt/sbt, this repository hosts modules that implements the build tool.
  • 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.

The short version: try searching or asking on StackOverflow.

license

See LICENSE.