如何通过在gradle build中配置jvm参数在Corda节点上运行java代理?

如何通过在gradle build中配置jvm参数在Corda节点上运行java代理?,jvm,build.gradle,corda,Jvm,Build.gradle,Corda,我正在尝试运行一个JavaAgent,它监视一个或多个Corda节点上的代码执行,以便在功能测试运行时跟踪其覆盖范围 假设您可以通过将以下内容添加到我的节点规范中来添加JVM参数: custom = { jvmArgs: [ "-javaAgent:/Path/To/Agent/jacoco-agent.jar=config-file=/Path/To/Agent/jacoco-agent.config", "-Xmx1G", "-XX:

我正在尝试运行一个JavaAgent,它监视一个或多个Corda节点上的代码执行,以便在功能测试运行时跟踪其覆盖范围

假设您可以通过将以下内容添加到我的节点规范中来添加JVM参数:

custom = {
   jvmArgs: [ "-javaAgent:/Path/To/Agent/jacoco-agent.jar=config-file=/Path/To/Agent/jacoco-agent.config",  "-Xmx1G", "-XX:+UseG1GC" ]
}

似乎我必须将其添加到每个节点配置文件中,但是否有办法通过build.gradle将其添加到所有节点,例如,这样代理在节点启动时启动。

您可以从
部署节点的
节点或
节点故障
部分编辑生成节点的
节点.conf
任务(或类型为
net.corda.plugins.Cordform
)的任何任务),因此您只需使用

node {
    extraConfig = ['custom.jvmArgs': ["-Xmx1G", "-XX:+UseG1GC"]]
}
注意,在Groovy中,列表和字典都使用方括号语法 e、 g


您可以从
build.gradle
中的
deployNodes
任务(或
net.corda.plugins.Cordform
类型的任何任务)的
node.conf
nodeDefaults
部分编辑生成节点的
node.conf
,因此您只需使用

node {
    extraConfig = ['custom.jvmArgs': ["-Xmx1G", "-XX:+UseG1GC"]]
}
注意,在Groovy中,列表和字典都使用方括号语法 e、 g


谢谢我设法添加了这个,并建立了一切,但我的代理没有得到连接。日志中没有提到这一点。如果我尝试完全相同的方法,但使用上面的参数,我会在[main]internal.Node下看到它们。-命令行参数:“Xmx1G”-XX:+UseG1GC在日志中。如果我使用-javaagent参数,就好像它被忽略了一样。有没有关于如何调试它的建议?如果拼写错误,它会断开吗?像
-jvaagent
?它是。无法识别的选项:-jvaagent:您如何运行测试?您是否手动启动节点?我现在不运行任何测试。我只运行deployNodes和runnodes,然后检查/logs文件夹以查看是否拾取了javaagent。我的代理jar的路径是系统上的绝对路径。它是否应该与项目文件夹相关?谢谢!我设法添加了这个,并建立了一切,但我的代理没有得到连接。日志中没有提到这一点。如果我尝试完全相同的方法,但使用上面的参数,我会在[main]internal.Node下看到它们。-命令行参数:“Xmx1G”-XX:+UseG1GC在日志中。如果我使用-javaagent参数,就好像它被忽略了一样。有没有关于如何调试它的建议?如果拼写错误,它会断开吗?像
-jvaagent
?它是。无法识别的选项:-jvaagent:您如何运行测试?您是否手动启动节点?我现在不运行任何测试。我只运行deployNodes和runnodes,然后检查/logs文件夹以查看是否拾取了javaagent。我的代理jar的路径是系统上的绝对路径。它应该是相对于项目文件夹的吗?