sbt - toyota - ¿Cómo establecer la clase principal en la compilación?
sbt medicina (2)
La clase principal debe estar completamente calificada con el paquete:
Compile/mainClass := Some("myPackage.aMainClass")
Esto funcionará para ejecutar y establecerá la clase principal en el Manifiesto al usar la tarea de paquete. La clase principal para estas tareas se puede configurar por separado como en:
mainClass in (Compile, run) := Some("myPackage.aMainClass")
mainClass in (Compile, packageBin) := Some("myPackage.anotherMainClass")
Nota:
mainClass := Some("myPackage.aMainClass")
no hace nada. Si coloca esto en su archivo de compilación, no recibirá ninguna advertencia de que no hace nada.
Después de sbt run
tengo múltiples opciones de clase principal.
Me gustaría establecer una clase principal, así que he escrito en build.sbt
:
mainClass := Some("aMainClass")
Pero sbt falla con:
build.sbt:1: error: not found: value aMainClass
También he intentado con el project/Project.scala
archivo project/Project.scala
:
import sbt._
class ExecutableProject(info: ProjectInfo) extends DefaultProject(info) {
override def mainClass = Some("aMainClass")
}
error:
project/Project.scala:3: not found: type aMainClass
¿Cómo establecer la clase principal en una compilación?
Por lo que sé, sbt
espera aquí un nombre de clase / objeto completamente calificado dentro de su proyecto. Por ejemplo, si tu clase principal es así:
package prog
object Main extends App {
// Hic sunt dracones
}
entonces tendrías que dar tu clase principal así:
mainClass := Some("prog.Main")
Obtiene un error de tipo porque ese tipo no se encuentra simplemente.