[英]Maven - JAVA_HOME location and Compilation failure executing javac
[英]Maven compilation: Failure executing javac
这是我们在尝试使用 Maven 2.2.1 和 JDK 1.6.0_23 在 Windows Server 2003 下编译新签出的代码时遇到的异常。 几台运行 Ubuntu 且具有相同 Maven 和 JDK 版本的机器在编译完全相同的源代码时完全没有问题。
尝试提供替代的 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
尝试
MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k
注意: -Xss ,应根据可用的硬件进行设置
您的任何代码是否是自动生成的,例如从 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>
这个问题的原因可能是什么,可能的解决方案是什么? 谢谢。
以下是一些可能的原因:
我也遇到过同样的问题。 为了解决我所做的,是-我在控制台中运行了以下命令
set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=384m
代替-
set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=128m
试试这个,它肯定会工作。 如果仍然遇到同样的问题,请更换
-XX:MaxPermSize=384m
至
-XX:MaxPermSize=512m
下面的评论是一个有效的答案
set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k -XX:MaxPermSize=384m"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.