Potresti, per favore, spiegarmi come impostare la classe principale nel progetto SBT? Sto cercando di usare la versione 0.13.come impostare la classe principale nel progetto SBT 0.13
La struttura della mia directory è molto semplice (a differenza della documentazione di SBT). Nella cartella principale ho build.sbt
con i seguenti contenuti
name := "sbt_test"
version := "1.0"
scalaVersion := "2.10.1-local"
autoScalaLibrary := false
scalaHome := Some(file("/Program Files (x86)/scala/"))
mainClass := Some("Hi")
libraryDependencies ++= Seq(
"org.scalatest" % "scalatest_2.10" % "2.0.M5b" % "test"
)
EclipseKeys.withSource := true
E devo sottocartella project
con singolo file che contiene Hi.scala
seguente codice
object Hi {
def main(args: Array[String]) = println("Hi!")
}
sono in grado di compilarlo chiamando sbt compile
ma sbt run
rendimenti
The system cannot find the file C:\work\externals\sbt\bin\sbtconfig.txt.
[info] Loading project definition from C:\work\test_projects\sbt_test\project
[info] Set current project to sbt_test (in build file:/C:/work/test_projects/sbt_test/)
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) No main class detected.
[error] Total time: 0 s, completed Apr 8, 2013 6:14:41 PM
PS.
Sono scioccato dal fatto che dopo aver letto la documentazione di SBT e 15 domande simili su StackOverflow, non sia stato possibile eseguire il progetto SBT. È una funzionalità di base che dovrebbe essere semplice e chiara per il cervello nei primi 10 secondi di osservazione del sito web di SBT.
PS2.
E mi piacerebbe chiedere ai dipendenti di Typesafe di migliorare la documentazione del loro prodotto invece di domande di persone che stanno investendo tempo significativo nel passaggio alla nuova piattaforma.
La tua esperienza non è tipica Hai considerato se la tua build Scala non standard potrebbe essere parte del problema? –
@RandallSchulz No. Perché posso compilare. Anche per motivi di esperimento ho cambiato l'impostazione SBT ottiene il compilatore Scala e rinominato il nome della classe in 'mainClass'.' Sbt run' ha funzionato comunque :) Il che indica che SBT ignora semplicemente l'impostazione. – expert
Perché si utilizza SBT 0.13 (solo milestone disponibile) anziché l'ultima versione 0.12.3? Perché non usi la struttura di directory predefinita (le fonti vanno in 'src/main/scala')? Perché non usi una versione di default di Scala? –