3

フォークされた JVM で hprof を使用して実行する "run" および "test:run" タスクを定義するにはどうすればよいですか。

build.sbt で

fork in run := true

javaOptions in run += "-agentlib:hprof"

この設定により、両方の実行タスクが hprof で機能します。

デフォルトの "run" および "test:run" タスクを維持するために hprof タスクを定義し、sbt プロンプトから使用したいと考えています。

//define myHprofTask, alias default run task

fork in myHprofTask := true

javaOptions in myHprofTask += "-agentlib:hprof"

このようなタスクを定義するにはどうすればよいですか?

4

1 に答える 1

2

これはhttps://github.com/harrah/xsbt/wiki/Common-TasksAdditional run tasksのセクションに基づいています。

  1. 新しいタスク キーを定義します。

    lazy val myHprofTask = TaskKey[Unit]("my-hprof-task")
    
  2. を実行するクラスパスを使用し、 「arg1」と「arg2」を引数として渡して、Compile構成 (myHprofTask in Compile部分)に新しい run タスクを追加します。Compiledemo.Main

    fullRunTask(myHprofTask in Compile, Compile, "demo.Main", "arg1", "arg2")
    
  3. 構成についても同じことを行いTestます。

    fullRunTask(myHprofTask in Test, Test, "demo.TestMain", "arg1", "arg2")
    
  4. fork次に、質問のようにjavaOptions設定を定義できます。

クイック コンフィギュレーション スタイルを使用した完全な例を次に示します ( build.sbt)。

{
  lazy val myHprofTask = TaskKey[Unit]("my-hprof-task")
  seq(
    fullRunTask(myHprofTask in Compile, Compile, "demo.Main", "arg1"),
    fullRunTask(myHprofTask in Test, Test, "demo.TestMain", "arg1"),
    fork in myHprofTask := true,
    javaOptions in myHprofTask += "-agentlib:hprof"
  )
}
于 2011-08-15T15:07:11.020 に答える