我一直在尝试在mac上运行一个在linux下工作的maven项目.当mvn clean install
它调用
它运行一部分测试,然后我收到以下错误:
线程"main"中的异常异常:从线程"main"中的UncaughtExceptionHandler抛出java.lang.OutOfMemoryError
我已经看到许多关于Perm gen error的问题已经通过添加MAVEN_OPTS到环境变量来修复.现在我的系统上有以下环境变量:
MAVEN_OPTS =" - Xmx4096m -XX:MaxPermSize = 4096m"
通话时mvn help:system我可以看到配置中显示的这些选项.
该项目使用Robolectric进行测试,并且(在大多数情况下但并非总是如此)在抛出异常之前打印以下行:
[DEBUG]***********************GC'ed SdkEnvironment重复使用!
[ERROR]无法在org.robolectric.bytecode.AsmInstrumentingClassLoader@300abe53中加载org.robolectric.internal.ParallelUniverse
在活动监视器中,我可以看到一个java进程在我开始测试时生效.在抛出异常之前,它的内存使用量达到1.4~1.5GB.
我还应该做些什么才能让它发挥作用.谢谢你的帮助!
将内存选项添加到确定的fire插件后编辑:
Run Code Online (Sandbox Code Playgroud)<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <argLine>-Xmx2048m -XX:MaxPermSize=2048m</argLine> </configuration> </plugin>
并且运行mvn clean install -e -X我得到了以下堆栈跟踪:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project android: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process
[ERROR] java.lang.OutOfMemoryError: PermGen space
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method) …Run Code Online (Sandbox Code Playgroud) 我正在使用Maven站点:运行以生成cobertura代码覆盖...
以下是我对cobertura的pom.xml配置:
<reporting>
...
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
但是我在网站的末尾得到OutOfMemoryError:运行.请建议如何摆脱这个错误.(我已经尝试了所有这些-Xmx,-XX选项...)
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
at sun.reflect.GeneratedSerializationConstructorAccessor74.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1737)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
at net.sourceforge.cobertura.coveragedata.CoverageDataContainer.readObject(CoverageDataContainer.java:373)
at sun.reflect.GeneratedMethodAccessor348.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用maven jetty插件来运行我的两个Web应用程序.一个Web应用程序是spring mvc UI,另一个是RESTful Web应用程序.当我运行两个单独的mvn jetty时,我能够让两个Web应用程序进行通信:运行实例并分配不同的端口.我已使用下面的maven pom.xml配置使用相同的端口在同一个jetty实例中成功部署.我最终得到一个ava.lang.OutOfMemoryError:PermGen空间错误.对此最好的解决方法是什么?
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.6.8.v20121106</version>
<configuration>
<jvmArgs>-Xmx2024m -Xms2024m</jvmArgs>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webApp>
<contextPath>/</contextPath>
</webApp>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>../../api/target/main-api.war</war>
<contextPath>/test</contextPath>
</contextHandler>
</contextHandlers>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)