Maven сборник: сбой при выполнении javac - PullRequest
11 голосов
/ 24 января 2011

Вот исключение, которое мы получаем при попытке скомпилировать недавно извлеченный код под Windows Server 2003 с Maven 2.2.1 и JDK 1.6.0_23.Несколько машин с 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

Ответы [ 5 ]

13 голосов
/ 24 января 2011

попробуй

MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k

Примечание: -Xss, должно быть установлено в соответствии с доступным оборудованием

8 голосов
/ 24 января 2011

Ваш код генерируется автоматически, например, из 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 голосов
/ 24 января 2011

В чем может быть причина этой проблемы и что может быть возможным решением? Thanx.

Вот несколько возможных причин:

  • Стек на самом деле слишком мал. Fix - установить больший размер стека.
  • Вы составляете патологический класс или метод. Исправить - попытаться определить файл, определить патологию и провести рефакторинг.
  • Вы столкнулись с ошибкой компилятора Java. Исправление - попробуйте определить файл, определить, что вызывает ошибку, и реорганизовать ее для ее устранения.
  • Вам каким-то образом удалось получить поврежденный файл JAR в локальный репозиторий Maven на компьютере с Windows. Исправить - стереть репозиторий и восстановить. (Это может повлечь за собой повторную загрузку множества артефактов и плагинов.)
0 голосов
/ 23 июля 2014

Комментарий ниже является рабочим ответом

set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k -XX:MaxPermSize=384m"
0 голосов
/ 19 июня 2014

Я тоже сталкивался с такой же проблемой.Чтобы исправить это, я выполнил следующую команду в консоли

set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=384m

вместо -

set MAVEN_OPTS=-Xms256m -Xmx1024m -Xss1024k *-XX:MaxPermSize=128m

Попробуйте это, это определенно сработаетЕсли проблема не исчезнет, ​​замените

-XX:MaxPermSize=384m

на

-XX:MaxPermSize=512m
...