sbt 中的 mainClass 设置如何工作?

发布于 2024-10-20 15:22:50 字数 108 浏览 6 评论 0原文

我似乎找不到关于 mainClass 选项在 sbt 的构建配置中如何工作的任何细节。您指定了调用 run 操作时要使用的类的名称,但它实际上用它做什么呢?它调用类上的方法吗?

I can't seem to find any details of how the mainClass option works in the build configuration of sbt. You specify the name of a class to use when you invoke the run action, but what does it actually do with it? Does it call a method on the class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖风昔人 2024-10-27 15:22:50

http://code.google.com/p/simple-build -工具/wiki/BuildConfiguration#Run_Options

方法 mainClass 的类型为 Option[String],并指定调用运行任务时要运行的可选主类。默认实现不指定主类(None)。当未指定mainClass时,运行任务将自动确定运行哪个类。如果恰好检测到一个主类,则运行它。如果检测到多个主类,系统会提示用户运行哪一个。

类名应引用具有 def main(args:Array[String] 的同名对象):单位方法。该方法已运行。

因此,如果您创建,

package foo
object Foo { def main(args:Array[String]) { println("foo") } }

则可以使用override def mainClass = Some("foo.Foo"),以便run目标运行foo.Foo

http://code.google.com/p/simple-build-tool/wiki/BuildConfiguration#Run_Options

Method mainClass is of type Option[String] and specifies an optional main class to run when the run task is invoked. The default implementation specifies no main class (None). When mainClass is not specified, the run task will determine which class to run automatically. If exactly one main class is detected, it is run. If multiple main classes are detected, the user is prompted for which one to run.

The class name is expected to refer to an object of the same name that has a def main(args:Array[String]): Unit method. That method is run.

So if you create

package foo
object Foo { def main(args:Array[String]) { println("foo") } }

You can then use override def mainClass = Some("foo.Foo") so that the run target would run foo.Foo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文