2011-08-05 44 views
3

如何定義「運行」和「測試:運行」任務以在分叉的JVM上使用hprof運行。如何定義任務使用hprof從sbt運行0.10

在build.sbt

fork in run := true 

javaOptions in run += "-agentlib:hprof" 

此設置使兩者運行的任務與工作HPROF。

我想定義我的hprof任務,以保持默認的「運行」和「測試:運行」任務並使用sbt提示符。

//define myHprofTask, alias default run task 

fork in myHprofTask := true 

javaOptions in myHprofTask += "-agentlib:hprof" 

如何定義這樣的任務?

回答

2

這是基於https://github.com/harrah/xsbt/wiki/Common-TasksAdditional run tasks部分。

  1. 定義新的任務關鍵:

    lazy val myHprofTask = TaskKey[Unit]("my-hprof-task") 
    
  2. 添加在Compile配置中使用Compile類路徑執行demo.Main一個新的運行任務(myHprofTask in Compile部分),通過 「ARG1」 和「ARG2 「作爲參數:

    fullRunTask(myHprofTask in Compile, Compile, "demo.Main", "arg1", "arg2") 
    
  3. 做了Test相同c onfiguration:

    fullRunTask(myHprofTask in Test, Test, "demo.TestMain", "arg1", "arg2") 
    
  4. 然後,你可以在這個問題定義forkjavaOptions設置。

下面是使用快速配置風格(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" 
) 
} 
+0

謝謝你回答我的問題。 – pokutuna

+0

但我想使用提示進行默認運行和測試:從自定義任務運行任務,如: [1] demo.Main1 [2] demo.Main2 Enter number: – pokutuna