2011-08-05 46 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