プロジェクトで両方を使用できますか?
以前はオブジェクト拡張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
(static main メソッドが見つからないというエラーがあります) が、Microkernel で動作しsbt stage
ます。生成されたスクリプトを使用してアプリケーションを実行し、次に起動すると、正常に動作します。
私がこのようなものを使用しているとき:
object Backend extends App {
val system = ActorSystem("application")
FactorialBackend startOn system
}
でアプリを起動できますsbt "project backend" "run"
が、Microkernel が機能しなくなりました。
私はそれで何ができますか?Microkernel と sbt を使用してアプリケーションを起動するための個別のファイル、または個別のビルド構成を用意する必要がありますか?
Microkernel を使用した製品版のアプリケーションが必要であり、開発中に sbt を使用してアプリケーションを実行およびデバッグすることも必要です。
App と Bootable トレイトの両方を拡張する同じクラスまたはオブジェクトを使用するか、sbt.build を構成して Microkernel と を別々に構成しようとしましたが、sbt run
役に立ちませんでした。