【发布时间】:2011-03-06 10:21:55
【问题描述】:
我似乎找不到任何关于mainClass 选项如何在 sbt 的构建配置中工作的细节。您在调用run 操作时指定要使用的类的名称,但它实际上用它做什么?它会调用类上的方法吗?
【问题讨论】:
我似乎找不到任何关于mainClass 选项如何在 sbt 的构建配置中工作的细节。您在调用run 操作时指定要使用的类的名称,但它实际上用它做什么?它会调用类上的方法吗?
【问题讨论】:
http://code.google.com/p/simple-build-tool/wiki/BuildConfiguration#Run_Options
方法 mainClass 是 Option[String] 类型,并指定在调用运行任务时要运行的可选主类。默认实现不指定主类 (None)。当未指定 mainClass 时,run 任务将决定自动运行哪个类。如果恰好检测到一个主类,则运行它。如果检测到多个主类,则会提示用户运行哪一个。
类名应引用具有def main(args:Array[String]): Unit 方法的同名对象。运行该方法。
所以如果你创建
package foo
object Foo { def main(args:Array[String]) { println("foo") } }
然后您可以使用override def mainClass = Some("foo.Foo") 以便run 目标将运行foo.Foo。
【讨论】:
static void main(String[] args)。
object,SBT 是否假定它是未定义此键的主类?