Как определить задачи для запуска с hprof из SBT 0.10 - PullRequest
3 голосов
/ 05 августа 2011

Как определить задачи run и test: run для запуска с hprof на разветвленной JVM.

в build.sbt

fork in run := true

javaOptions in run += "-agentlib:hprof"

Этот параметр заставляет обе задачи запуска работать с hprof.

Я хочу определить задачу hprof для хранения заданий по умолчанию «run» и «test: run» и использовать их из приглашения sbt.

//define myHprofTask, alias default run task

fork in myHprofTask := true

javaOptions in myHprofTask += "-agentlib:hprof"

Как я могу определить такие задачи?

1 Ответ

2 голосов
/ 15 августа 2011

Это основано на Additional run tasks разделе https://github.com/harrah/xsbt/wiki/Common-Tasks.

  1. Определите новый ключ задачи:

    lazy val myHprofTask = TaskKey[Unit]("my-hprof-task")
    
  2. Добавьте новую задачу запуска в конфигурации Compile (часть myHprofTask in Compile), используя Compile classpath, который выполняет demo.Main, передавая "arg1" и "arg2" в качестве аргументов:

    fullRunTask(myHprofTask in Compile, Compile, "demo.Main", "arg1", "arg2")
    
  3. Сделайте то же самое для конфигурации Test:

    fullRunTask(myHprofTask in Test, Test, "demo.TestMain", "arg1", "arg2")
    
  4. Затем вы можете определить настройки fork и javaOptions, как вquestion.

Вот полный пример использования стиля быстрой настройки (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"
  )
}
...