如何定义使用 sbt 0.10 中的 hprof 运行的任务

发布于 2024-11-28 04:06:55 字数 426 浏览 2 评论 0原文

如何定义“run”和“test:run”任务以在分叉 JVM 上使用 hprof 运行。

在 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"

我如何定义这样的任务?

How do I define "run" and "test:run" tasks to run with hprof on forked JVM.

in build.sbt

fork in run := true

javaOptions in run += "-agentlib:hprof"

This setting makes both run tasks work with hprof.

I want to define my hprof task for keeping default "run" and "test:run" tasks and use from sbt prompt.

//define myHprofTask, alias default run task

fork in myHprofTask := true

javaOptions in myHprofTask += "-agentlib:hprof"

How can I define tasks like this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欢你一世 2024-12-05 04:06:55

这基于 https:// 的其他运行任务部分github.com/harrah/xsbt/wiki/Common-Tasks

  1. 定义新的任务键:

    lazy val myHprofTask = TaskKey[Unit]("my-hprof-task")
    
  2. 使用 Compile 配置(Compile 中的 myHprofTask 部分)添加新的运行任务code>Compile 执行 demo.Main 的类路径,传递“arg1”和“arg2”作为参数:

    fullRunTask(编译中的myHprofTask,编译,“demo.Main”,“arg1”,“arg2”)
    
  3. Test 配置执行相同操作:

    fullRunTask(测试中的 myHprofTask,测试,“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"
  )
}

This is based on the Additional run tasks section of https://github.com/harrah/xsbt/wiki/Common-Tasks.

  1. Define the new task key:

    lazy val myHprofTask = TaskKey[Unit]("my-hprof-task")
    
  2. Add a new run task in the Compile configuration (the myHprofTask in Compile part) using the Compile classpath that executes demo.Main, passing "arg1" and "arg2" as arguments:

    fullRunTask(myHprofTask in Compile, Compile, "demo.Main", "arg1", "arg2")
    
  3. Do the same for the Test configuration:

    fullRunTask(myHprofTask in Test, Test, "demo.TestMain", "arg1", "arg2")
    
  4. Then, you can define the fork and javaOptions settings as in the question.

Here is the full example using the quick configuration style (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"
  )
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文