3

プロジェクトで両方を使用できますか?

以前はオブジェクト拡張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役に立ちませんでした。

4

3 に答える 3

0

sbt コンソールで次の手順を実行します。

runMain akka.kernel.Main Backend
于 2015-06-28T18:26:32.980 に答える
0

2つのモジュールは必要ないと思います。

次のコマンドでマイクロカーネルを実行できます

sbt "プロジェクト バックエンド" "run-main akka.kernel.Main バックエンド"

于 2015-03-12T17:34:34.537 に答える
0

1 つの解決策は、別のモジュールを作成し、そこに起動可能なクラスを配置し、追加のビルド構成を追加することです。

lazy val backend = (project in file("backend"))
  .settings(
    name := "backend",
    libraryDependencies ++= Dependencies.backend,
    javaOptions in run ++= Seq("-Djava.library.path=./sigar"),
    // this enables custom javaOptions
    fork in run := true)
  .dependsOn(api)
  .aggregate(api)

lazy val boot = (project in file("boot"))
  .enablePlugins(AkkaAppPackaging)
  .enablePlugins(UniversalPlugin)
  .settings(
    name := "boot",
    mainClass in Compile := Some("com.example.Boot"),
    libraryDependencies ++= Dependencies.backend,
    // this enables custom javaOptions
    fork in run := true)
  .dependsOn(backend)
  .aggregate(api, backend)

今なら走れる

sbt "project backend" "run"

sbt "project boot" "stage"
于 2015-01-29T22:50:34.800 に答える