我可以在我的项目中使用两者吗?
以前我只有对象扩展App
特征,但自从我开始使用Microkernel
后,我需要有类扩展Bootable
特征。
假设我有这样的事情:
lazy val backend = (project in file("backend"))
.enablePlugins(AkkaAppPackaging)
.enablePlugins(UniversalPlugin)
.settings(
name := "backend",
mainClass in Compile := Some("backend.Backend"),
libraryDependencies ++= Dependencies.backend,
javaOptions in run ++= Seq("-Djava.library.path=./sigar"),
fork in run := true)
.dependsOn(api)
.aggregate(api)
和这样的后端类:
class Backend extends Bootable {
val system = ActorSystem("mobile-cluster")
def startup() = {
FactorialBackend startOn system
}
def shutdown() = {
system.shutdown()
}
}
我无法启动应用程序sbt run
(缺少静态主方法时出错),但它适用于微内核,当我运行sbt stage
并使用生成的脚本下次启动应用程序时它工作正常。
当我使用这样的东西时:
object Backend extends App {
val system = ActorSystem("application")
FactorialBackend startOn system
}
我可以使用 启动应用程序sbt "project backend" "run"
,但微内核不再起作用。
我能用它做什么?我应该有单独的文件来使用微内核和 sbt 启动应用程序还是单独的构建配置?
我需要使用微内核的应用程序的生产版本,并且我还想在使用 sbt 的开发过程中运行和调试我的应用程序。
我尝试使用相同的类或对象来扩展 App 和 Bootable 特征或配置 sbt.build 以对 Microkernel 和 进行单独配置sbt run
,但这没有帮助。