mirror of
https://github.com/sbt/sbt.git
synced 2026-09-02 11:07:30 +02:00
a36d8401e11b5e97e79f9b8f1818da1dafe4aced
The previous implementation was using the Scala runtime universe to check whether a plugin had or not an `autoImport` member. This is a bad idea for the following reasons: * The first time you use it, you class load the whole Scalac compiler universe. Not efficient. Measurements say this is about a second. * There is a small overhead of going through the reflection API. There exists a better approach that consists in checking if `autoImport` exists with pure Java reflection. Since the class is already class loaded, we check for: * A class file named after the plugin FQN that includes `autoImport$` at the end, which means that an object named `autoImport` exists. * A field in the plugin class that is named `autoImport`. This complies with the plugin sbt specification: http://www.scala-sbt.org/1.0/docs/Plugins.html#Controlling+the+import+with+autoImport
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see http://www.scala-sbt.org/.
sbt 1.0.x
This is the 1.0.x series of sbt. The source code of sbt is split across several Github repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/util hosts a collection of internally used modules.
- sbt/librarymanagement hosts
sbt.librarymanagementmodule that wraps Ivy. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implements 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.
The short version: try searching or asking on StackOverflow and sbt-dev.
license
See LICENSE.
Languages
Scala
94.5%
Java
3.1%
Shell
1.1%
Batchfile
0.9%
Roff
0.2%
Other
0.1%