mirror of https://github.com/sbt/sbt.git
Merge pull request #1669 from kretes/1648-warn-about-main-classes
Fix for https://github.com/sbt/sbt/issues/1648 - warn about multiple or no main classes
This commit is contained in:
commit
b834be8bfa
|
|
@ -264,9 +264,9 @@ object Defaults extends BuildCommon {
|
|||
definedSbtPlugins <<= discoverPlugins,
|
||||
discoveredSbtPlugins <<= discoverSbtPluginNames,
|
||||
inTask(run)(runnerTask :: Nil).head,
|
||||
selectMainClass := mainClass.value orElse selectRunMain(discoveredMainClasses.value),
|
||||
selectMainClass := pickMainClass(discoveredMainClasses.value) orElse askForMainClass(discoveredMainClasses.value),
|
||||
mainClass in run := (selectMainClass in run).value,
|
||||
mainClass := selectPackageMain(discoveredMainClasses.value),
|
||||
mainClass := pickMainClassOrWarn(discoveredMainClasses.value, streams.value.log),
|
||||
run <<= runTask(fullClasspath, mainClass in run, runner in run),
|
||||
runMain <<= runMainTask(fullClasspath, runner in run),
|
||||
copyResources <<= copyResourcesTask
|
||||
|
|
@ -662,10 +662,22 @@ object Defaults extends BuildCommon {
|
|||
new Package.Configuration(srcs, path, options)
|
||||
}
|
||||
|
||||
def selectRunMain(classes: Seq[String]): Option[String] =
|
||||
@deprecated("use Defaults.askForMainClass", "0.13.7")
|
||||
def selectRunMain(classes: Seq[String]): Option[String] = askForMainClass(classes)
|
||||
@deprecated("use Defaults.pickMainClass", "0.13.7")
|
||||
def selectPackageMain(classes: Seq[String]): Option[String] = pickMainClass(classes)
|
||||
def askForMainClass(classes: Seq[String]): Option[String] =
|
||||
sbt.SelectMainClass(Some(SimpleReader readLine _), classes)
|
||||
def selectPackageMain(classes: Seq[String]): Option[String] =
|
||||
def pickMainClass(classes: Seq[String]): Option[String] =
|
||||
sbt.SelectMainClass(None, classes)
|
||||
private def pickMainClassOrWarn(classes: Seq[String], logger: Logger): Option[String] = {
|
||||
classes match {
|
||||
case Nil => logger.warn("No main class detected")
|
||||
case multiple if multiple.size > 1 => logger.warn("Multiple main classes detected. Run 'show discoveredMainClasses' to see the list")
|
||||
case _ =>
|
||||
}
|
||||
pickMainClass(classes)
|
||||
}
|
||||
|
||||
def doClean(clean: Seq[File], preserve: Seq[File]): Unit =
|
||||
IO.withTemporaryDirectory { temp =>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
[@tmandke]: https://github.com/tmandke
|
||||
[@topping]: https://github.com/topping
|
||||
[@WarsawScala]: https://github.com/WarsawScala
|
||||
[@kretes]: https://github.com/kretes
|
||||
[1237]: https://github.com/sbt/sbt/issues/1237
|
||||
[1430]: https://github.com/sbt/sbt/issues/1430
|
||||
[1544]: https://github.com/sbt/sbt/issues/1544
|
||||
|
|
@ -33,6 +34,7 @@
|
|||
[1631]: https://github.com/sbt/sbt/pull/1631
|
||||
[1642]: https://github.com/sbt/sbt/pull/1642
|
||||
[1683]: https://github.com/sbt/sbt/pull/1683
|
||||
[1648]: https://github.com/sbt/sbt/pull/1648
|
||||
|
||||
### Fixes with compatibility implications
|
||||
|
||||
|
|
@ -49,6 +51,7 @@
|
|||
- Adds support for publishing to a Maven repository with `file` URLs. [#1618][1618] by [@jsuereth][@jsuereth]
|
||||
- Don't hardcode existing relations in `TextAnalysisFormat`. [#1572][1572] by [@Duhemm][@Duhemm]
|
||||
- Adds `developers` key. [#1590][1590] by [@jedesah][@jedesah]
|
||||
- Will warn when none or multiple main classes detected. [#1648][1648] by [@kretes][@kretes]
|
||||
|
||||
### Bug fixes
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue