Java 在生产构建中包含cobertura工具是否安全?

Java 在生产构建中包含cobertura工具是否安全?,java,performance,maven,instrumentation,cobertura,Java,Performance,Maven,Instrumentation,Cobertura,我们的组织要求使用maven cobertura插件为所有需要投入生产的代码生成代码覆盖率报告 我的理解是,cobertura对类文件进行插入(修改字节码)以实现代码覆盖率的计算。我有几个问题是关于这是如何工作的: 1) 如果我将构建配置为运行instrumentation目标,并使用相同的构建生成EAR以在生产appserver上安装,那么修改后的字节码最终会被部署吗 2) 如果是,这是否会由于字节码中注入了额外的诊断代码而导致应用程序性能下降 3) 是否建议为cobertura检测和代码覆盖

我们的组织要求使用maven cobertura插件为所有需要投入生产的代码生成代码覆盖率报告

我的理解是,cobertura对类文件进行插入(修改字节码)以实现代码覆盖率的计算。我有几个问题是关于这是如何工作的:

1) 如果我将构建配置为运行instrumentation目标,并使用相同的构建生成EAR以在生产appserver上安装,那么修改后的字节码最终会被部署吗

2) 如果是,这是否会由于字节码中注入了额外的诊断代码而导致应用程序性能下降

3) 是否建议为cobertura检测和代码覆盖率报告生成单独设置构建作业,这样就不会污染要在生产中安装的代码


非常感谢您的投入

通常,任何代码覆盖率插件都会在“production classes”目录之外的另一个目录中生成插入指令的类,以生成覆盖率报告;虽然我不知道字节码是如何插装的,但我猜这种插装将阻止JIT执行其工作,因此您应该避免在生产环境中使用这种插装类。此外,代码覆盖率并不是一切;你也可能对跑步感兴趣。谢谢你的指点。我认为你是对的,因为我看到当检测任务运行时,类在一个单独的文件夹中生成。但是,我们决定将检测和报告生成与常规构建分开,以使它们运行得更快。