2013-01-10 11 views
7

sto analizzando un grande progetto di Sonar e ottenere il seguente errore:L'analisi del sonar dà errore memoria, dovrei aumentare lo spazio heap JVM del server Ant o Sonar?

[sonar:sonar] 03:55:39.511 INFO p.PhasesTimeProfiler - Execute decorators... 

BUILD FAILED 
[...] 
[...] java.lang.OutOfMemoryError: Java heap space 
at org.sonar.batch.index.MeasurePersister.model(MeasurePersister.java:127) 
at org.sonar.batch.index.MeasurePersister.getMeasuresToSave(MeasurePersister.java:117) 
at org.sonar.batch.index.MeasurePersister.dump(MeasurePersister.java:70) 
at org.sonar.batch.index.DefaultPersistenceManager.dump(DefaultPersistenceManager.java:63) 
at org.sonar.batch.phases.Phases.execute(Phases.java:95) 
at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:139) 
at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:131) 
at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:121) 
at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:121) 
at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
at org.sonar.batch.Batch.execute(Batch.java:104) 
at org.sonar.ant.Launcher.execute(Launcher.java:78) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:616) 
at org.sonar.ant.SonarTask.delegateExecution(SonarTask.java:244) 
at org.sonar.ant.SonarTask.execute(SonarTask.java:193) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:616) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
at org.apache.tools.ant.Task.perform(Task.java:348) 
at org.apache.tools.ant.Target.execute(Target.java:392) 
at org.apache.tools.ant.Target.performTasks(Target.java:413) 
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442) 

Devo aumentare lo spazio java mucchio di server Sonar in esecuzione, o il target Ant esecuzione del processo Sonar?

+0

Che IDE stai usando? – ppeterka

+0

Sto usando Jenkins per eseguire il target Ant (Sonar) – user1340582

+0

Oh, OK, questa è la possibilità che ho lasciato fuori ... – ppeterka

risposta

13

Come si può vedere dalla analisi dello stack, la Formica inizia l'analisi Sonar, così si dovrebbe aumentare lo spazio heap per la VM la Formica viene eseguito in

Questa è una domanda molto simile BTW:. How to increase Sonar Java heap space

Per riga di comando utilizzo Ant

Citazione dalla risposta da Mark O'Connor d'altra domanda:

The Sonar ANT task executes as part of ANT so you need to set the JVM heap using the standard ANT environment parameter. For example:

export ANT_OPTS=-Xmx256m

Osservazioni:

  • questo è per Linux, per Windows, utilizzare il comando set
  • questo è strettamente per lo spazio di heap. per Permgen, utilizzare -XX:MaxPermSize=<desired amount>

Questa è una domanda ancora più simile: Build Failed java.lang.OutOfMemoryError: Java heap space

per Eclipse IDE

Citazione dall'articolo http://soenkerohde.com/2008/06/change-eclipse-ant-settings-when-you-run-out-of-memory/

  • In Eclipse open menu: Run->External Tools->Open External Tools Dialog
  • Select the build script you want to change on the left
  • Select the JRE tab on the right
  • Set the following as VM arguments: -Xms768m -Xmx1024m -XX:MaxPermSize=512m

per IntelliJ Idea

questo thread del forum è utile: ANT build java heap space

Citazione di risposte:

Please make sure that you increased heap in a correct place. You need to click 'Properties' button in IDEA's Ant tool window and edit 'Maximum heap size (Mb)' field there.

Inoltre, dalla pagina Idea IntelliJ: Increasing Memory Heap

Citazione dall'articolo:

The memory heap of the build process is independent of IntelliJ IDEA memory heap, and is released after the build process is complete.

To increase a memory heap: Open the Build File Properties dialog box. In the Maximum heap size field, type the required amount of memory.

Per Jenkins Con tinuo Integrazione e Ant costruire

questa domanda è utile: How to use the Java Options in jenkins ant build tool to set ANT_OPTS

Citato dalla risposta:

Set the JAVA OPTIONS as -Xmx512m -XX:MaxPermSize=256m only without the ANT_OPTS=

Per Maven costruisce, questo articolo è di uso: How to increase maven heapspace in hudson builds

  1. Navigate to your hudson job,
  2. click Configure,
  3. scroll down to the Build section, and
  4. click the Advanced button.
  5. Enter this into MAVEN_OPTS: -Xmx512m -XX:MaxPermSize=128m
+0

cosa è per mac ..? – Mansur