NoClassDefFoundError:MainMockTransformer在与jacoco一起使用PowerMock javaagent时

NoClassDefFoundError:MainMockTransformer在与jacoco一起使用PowerMock javaagent时,java,powermock,jacoco,javaagents,Java,Powermock,Jacoco,Javaagents,我在下面的文章中使用Powermock使jacoco为类工作。在使用eclemma的eclipse中,我能够看到正确的代码覆盖率。但我们正在更大规模地使用声纳来测量代码覆盖率 为了生成提供给sonar的jacoco报告,我们通过VM args诱导了jacoco代理。ant目标运行单元测试以生成报告 以下是我的VM参数: -Xmx1048m -Xms1048m -XX:PermSize=512M -XX:MaxPermSize=1024M -javaagent:<somepath>\p

我在下面的文章中使用Powermock使jacoco为类工作。在使用eclemma的eclipse中,我能够看到正确的代码覆盖率。但我们正在更大规模地使用声纳来测量代码覆盖率

为了生成提供给sonar的jacoco报告,我们通过VM args诱导了jacoco代理。ant目标运行单元测试以生成报告

以下是我的VM参数:

-Xmx1048m -Xms1048m -XX:PermSize=512M -XX:MaxPermSize=1024M
-javaagent:<somepath>\powermock-module-javaagent-1.6.1.
jar
-javaagent:<somepath>\jacocoagent.jar=
destfile=<somepath>\jacoco.exec,append=true,excludes=
com.google.*:com.sun.*:-Org.mockito.*:-Org.junit.*:
-Org.apache.*:junit.*,includes=*
-Ddeployed.server.type="tomcat" -noverify
-Xmx1048m-Xms1048m-XX:PermSize=512M-XX:MaxPermSize=1024M
-javaagent:\powermock-module-javaagent-1.6.1。
罐子
-javaagent:\jacocoagent.jar=
destfile=\jacoco.exec,append=true,排除=
com.google.*:com.sun.*:-Org.mockito.*:-Org.junit.*:
-Org.apache.*:junit.*,包括=*
-Ddeployed.server.type=“tomcat”-noverify
在本文之后,我还将powermock代理放在了javaoptions中,但我发现了以下错误

java.lang.NoClassDefFoundError: org/powermock/core/transformers/impl/MainMockTransformer
FATAL ERROR in native method: processing of -javaagent failed
   at org.powermock.modules.agent.PowerMockClassTransformer.<clinit>(PowerMockClassTransformer.java:41)
   at org.powermock.modules.agent.PowerMockAgent.<clinit>(PowerMockAgent.java:42)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
   at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.ClassNotFoundException: org.powermock.core.transformers.impl.MainMockTransformer
   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
java.lang.NoClassDefFoundError:org/powermock/core/transformers/impl/MainMockTransformer
本机方法中出现致命错误:处理-javaagent失败
位于org.powermock.modules.agent.PowerMockClassTransformer.(PowerMockClassTransformer.java:41)
位于org.powermock.modules.agent.PowerMockAgent.(PowerMockAgent.java:42)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
位于sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
原因:java.lang.ClassNotFoundException:org.powermock.core.transformers.impl.MainMockTransformer
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)