如何外部化 jacoco javaagent 的属性
How to externalize the properties of a jacoco javaagent
我正在尝试从远程服务器获取代码覆盖率数据,因此我添加了一个 JVM 参数:
-javaagent:/opt/jacocoagent.jar=output=tcpserver,port=6300,includes="a pretty long list"
但不幸的是,包含列表太长,java 命令超出了我们系统限制的最大长度。
有什么方法可以指定一个外部 属性 文件,这样我就可以把长长的“包含列表”放在那里?
我已经阅读了 jacoco 文档,似乎在 "Offline Instrumentation" 中 运行 时,如果 jacoco-agent.properties 出现在类路径中,则 jacoco 代理将从 jacoco-agent.properties 读取属性。但是我不想用这个模式
自己找到了解决办法。
当oracle JVM启动时,它选择了一个环境变量JAVA_TOOL_OPTIONS和
the JNI_CreateJavaVM function (in the JNI Invocation API) prepends the
value of the environment variable to the options supplied in its
JavaVMInitArgs argument.
所以在我的例子中,我定义了:
JAVA_TOOL_OPTIONS=-javaagent:/path/to/jacocoagent.jar=output=tcpserver,address=*,port=6300,includes="一个很长的列表"
详情可参考:
https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html
我正在尝试从远程服务器获取代码覆盖率数据,因此我添加了一个 JVM 参数:
-javaagent:/opt/jacocoagent.jar=output=tcpserver,port=6300,includes="a pretty long list"
但不幸的是,包含列表太长,java 命令超出了我们系统限制的最大长度。
有什么方法可以指定一个外部 属性 文件,这样我就可以把长长的“包含列表”放在那里?
我已经阅读了 jacoco 文档,似乎在 "Offline Instrumentation" 中 运行 时,如果 jacoco-agent.properties 出现在类路径中,则 jacoco 代理将从 jacoco-agent.properties 读取属性。但是我不想用这个模式
自己找到了解决办法。 当oracle JVM启动时,它选择了一个环境变量JAVA_TOOL_OPTIONS和
the JNI_CreateJavaVM function (in the JNI Invocation API) prepends the value of the environment variable to the options supplied in its JavaVMInitArgs argument.
所以在我的例子中,我定义了: JAVA_TOOL_OPTIONS=-javaagent:/path/to/jacocoagent.jar=output=tcpserver,address=*,port=6300,includes="一个很长的列表"
详情可参考: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html