查看SBT发出的确切java命令

查看SBT发出的确切java命令,java,sbt,option,jrebel,Java,Sbt,Option,Jrebel,我正在尝试将jrebel与SBT项目集成。以下条目位于build.scala文件中: javaOptions ++= Seq("-javaagent:/path/to/jrebel.jar", "-Drebel.log=true", "-Drebel.log.file=/path/to/jrebel.log") 但是,在SBT启动时(或者在更新文件时),我没有看到任何Jrebel输出,因此我想知道是否有SBT命令/开关可用于显示SBT发出的确切java命令?(可能是版本格式不同?我使用的是SB

我正在尝试将jrebel与SBT项目集成。以下条目位于build.scala文件中:

javaOptions ++= Seq("-javaagent:/path/to/jrebel.jar", "-Drebel.log=true", "-Drebel.log.file=/path/to/jrebel.log")

但是,在SBT启动时(或者在更新文件时),我没有看到任何Jrebel输出,因此我想知道是否有SBT命令/开关可用于显示SBT发出的确切java命令?(可能是版本格式不同?我使用的是SBT版本0.12.2)

您做了一些奇怪的事情

如果您希望将jrebel添加到SBT,您必须将javaagent参数添加到调用SBT-launch.jar的命令中,也不要忘记属性文件???你的Build.scala这么大?难以置信

如果您需要将jrebel添加到Scala应用程序中,那么SBT完全超出范围。只要在某个地方启动应用程序,它就会重新加载重新编译的类。只需指定已编译类文件的位置。然后使用sbt>~包装箱。它类似于maven、ant或任何其他构建系统


IMHO javaOptions只影响jvm的特定任务,如编译、测试等。

不太熟悉SBT,您能告诉我“属性文件”指的是什么吗(除此之外,我将所有的构建/测试设置都放在build.scala中,而不是分散在其他文件中。这可能不是典型的策略,但它使所有内容都集中起来,就我个人而言,我发现更容易进行逻辑调整。)我的意思是,您必须将带有dir=/path/to/your/compiled/class/files的rebel.xml添加到jar/war/whatever.JRebel只重新加载文件。SBT只构建。两个不同进程之间只有关系-文件在您的存储中更改,没有共享设置,没有共享选项,没有共享执行环境。而且它工作正常。明白了。您的消息线索让我看看sbt脚本,这确实是问题所在。我一直在使用“通用”启动脚本,而使用框架的启动脚本(scalatra)我一直在使用一个修改过的版本来启动和运行JRebel。一切都很好,谢谢。我仍然不明白为什么JRebel在从sbt内部启动时不能正常工作——正如我最初的设置所尝试的那样。sbt启动JAVA似乎是为了生成容器服务——这似乎是拥有JavaP选项的全部目的首先是参数设置,是吗?再次感谢。你看到了吗?你在使用插件吗?你如何运行你的任务?jetty运行?我认为使用SBT或插件源代码进行调查很容易。我阅读了xsbt web插件源代码,我怀疑jetty和SBT共享同一个JVM实例。如果是这样,你必须将javaagent添加到java进程中这将启动sbt-launch.jar。