如何在构build主要类?
在sbt run
我有多个主要类的select。
我想设置一个主类,所以我写在build.sbt
:
mainClass := Some("aMainClass")
但是,sbt失败:
build.sbt:1: error: not found: value aMainClass
我也尝试过使用project/Project.scala
文件:
import sbt._ class ExecutableProject(info: ProjectInfo) extends DefaultProject(info) { override def mainClass = Some("aMainClass") }
错误:
project/Project.scala:3: not found: type aMainClass
如何在构build中设置主类?
主类必须完全符合包装要求:
mainClass in Compile := Some("myPackage.aMainClass")
这将用于运行,并且在使用包任务时它将在Manifest中设置Main-Class。 这些任务的主要类别可以单独设置,如下所示:
mainClass in (Compile, run) := Some("myPackage.aMainClass") mainClass in (Compile, packageBin) := Some("myPackage.anotherMainClass")
注意:
mainClass := Some("myPackage.aMainClass")
什么也没做。 如果你把它放在你的build文件中,你将不会收到任何警告。
据我所知, sbt
期望在你的项目中有一个完全合格的类/对象名称。 例如,如果你的主类是这样的:
package prog object Main extends App { // Hic sunt dracones }
那么你将不得不给你的主要类如下所示:
mainClass := Some("prog.Main")
你得到一个types错误,因为这种types不是简单的find。