1.如何在一些常用的服务器(如Weblogic、Tomcat等)中使用?
我们从上一篇文章中可以知道在emma中有两种运行模式。首先,很难有机会在一个成熟的J2EE容器中使用on-the-fly这种模式。其原因在于很多J2EE的特征需要专门的加载类,这个很可能是发生在EMMA插装类以外。服务器可能运行得很好,但很有可能得不到任何的覆盖数据。
因而,正确的流程是在部署网站之前进行插装(offlinemode)。离线插装经常按照同样的 编译==>插装==>打包==>发布==>获得覆盖率==>生成报告 这样的一个流程,具体的流程如下:
A. 使用EMMA的instr工具来插装需要的类。这一步可以作为编译后打包前来完成。然而,很多的用户同样也发现直接让EMMA处理jar包会更加方便(无论是在本地,使用overwrite模式,或者创建单独的插装附件,使用fullcopy模式)
B. 像往常一样打包J2EE,但此时不要将emma.jar包作为一个lib包括进去,如.war,.ear等
C. 确定容器所使用的JRE,将emma.jar包复制到<jre dir>/lib/ext目录下,如果这无法操作,将emma.jar加入到服务器的classpath中(in a server-specific way)
D. 部署插装的类,.