mirror of https://github.com/sbt/sbt.git
If the user runs foo/runMain in a project with multiple main classes, sbt will still warn the user about their being multiple main classes even though this is a pointless warning since the user either is running runMain which requires a main class. The run task is also excluded since by default it prompts the user with a main class selector. The previous logic for doing this filtering was bad because it only looked at the first command in a sequence and couldn't handle the foo/runMain case since it was looking for an exact match with `run` or `runMain`. This commit relaxes those restrictions to look at all of the strings in the command as well as splitting the string to check if the last part of the key ends in run or runMain. This logic could theoretically be incorrect if the user wrote an input task that was expecting run or runMain as user input but even in that case the only consequence would be that they wouldn't see the multiple main class warning which generally isn't all the helpful unless you are packaging a jar that expects there to be only one main class. It seems unlikely that that the user would be running a custom input task that is both packaging a jar and expecting run or runMain as input strings. |
||
|---|---|---|
| .github | ||
| client | ||
| core-macros/src/main/scala/sbt/internal/util/appmacro | ||
| dependency-tree/src/main/scala/sbt/plugins | ||
| internal | ||
| launch | ||
| launcher-package | ||
| licenses | ||
| main | ||
| main-actions/src | ||
| main-command/src | ||
| main-settings/src | ||
| notes | ||
| project | ||
| protocol/src/main | ||
| run | ||
| sbt-app/src | ||
| scripted-plugin/src/main/scala/sbt | ||
| scripted-sbt-old/src/main/scala/sbt/test | ||
| scripted-sbt-redux | ||
| server-test/src | ||
| src/main/conscript | ||
| tasks | ||
| tasks-standard | ||
| testing | ||
| util-cache | ||
| util-tracking | ||
| vscode-sbt-scala | ||
| zinc-lm-integration/src | ||
| .appveyor.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .java-version | ||
| .mailmap | ||
| .sbtopts | ||
| .scalafmt.conf | ||
| CONTRIBUTING.md | ||
| DEVELOPING.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 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.iomodule. - 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.
license
See LICENSE.