以下是尝试使用Maven 2.2.1和JDK 1.6.0_23在Windows Server 2003下编译新签出的代码时获得的异常。使用相同Maven和JDK版本运行Ubuntu的几台机器在编译完全相同的源代码时没有任何问题。
尝试提供替代Maven选项(即MAVEN_OPTS = -Xms256m -Xmx1024m)无济于事。
这个问题可能是什么原因以及可能的解决方案是什么?感谢名单。
[INFO] Compilation failure
Failure executing javac, but could not parse the error:
The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1799)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1522)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:377)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1241)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1210)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:360)
... then trace repeats multiple times
答案 0 :(得分:13)
尝试
MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k
注意:-Xss,应根据可用的硬件设置
答案 1 :(得分:8)
您的任何代码都是自动生成的,例如从WSDL?你能确定哪个类引起了问题吗?一种方法是删除一些源代码,重新编译并重复,直到缩小到一小部分类。
你有大班或长方法吗?如果是这样,你应该重构。
增加堆栈大小。我认为默认值是512k。将编译器配置更改为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerArgument>-J -Xss10M</compilerArgument>
</configuration>
</plugin>
答案 2 :(得分:2)
这个问题可能是什么原因以及可能的解决方案是什么?感谢名单。
以下是一些可能的原因:
答案 3 :(得分:0)
我也遇到过同样的问题。 为了解决它我所做的,是 - 我在控制台
中运行了以下命令set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=384m
而不是 -
set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=128m
试试这个,肯定会有用。如果仍然遇到同样的问题,请更换
-XX:MaxPermSize=384m
到
-XX:MaxPermSize=512m
答案 4 :(得分:0)
以下评论是一个有效的答案
set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k -XX:MaxPermSize=384m"