2012-04-11 10 views
5

Ben sonar yeni. sonar pulgu ile Jenkins'den sonar koşuyorum. i Jvm çıkarmış oluyorum zamansonar findbugs yığın boyutu

Out of memory 
Total memory: 1037M 
free memory: 30M 
Analyzed: D:\Victor\autocreated\webapp\WEB-INF\classes 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4165854405681394173.jar 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4688505485649811865.jar 
Total time: 2:04:49.155s 
Final Memory: 358M/989M 
Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:189) 
    at org.sonar.runner.Runner.execute(Runner.java:78) 
    at org.sonar.runner.Main.main(Main.java:61) 
Caused by: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:120) 
    at org.sonar.plugins.findbugs.FindbugsSensor.analyse(FindbugsSensor.java:58) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:64) 
    at org.sonar.batch.phases.Phases.execute(Phases.java:93) 
    at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:143) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:111) 
    at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:101) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:102) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.Batch.execute(Batch.java:100) 
    at org.sonar.runner.Launcher.executeBatch(Launcher.java:65) 
    at org.sonar.runner.Launcher.execute(Launcher.java:58) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:186) 
    ... 2 more 
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space 
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:112) 
    ... 20 more 
Caused by: java.lang.OutOfMemoryError: Java heap space 

benim sonar versiyon 2.13

geçerli:

i FindBugs aşağıda

de bellek istisna dışında alıyorum jenkins gelen çalıştırıyorum hatadır 1280 için Jenkins sonar eklentisi seçenekleri aşağıda gösterilmiştir:

+0

Makinenizde ne kadar bellek var? 1280 mevcut 1037M – oers

+0

'dan daha fazlası gibi görünüyor benim sistem ram 3 gb. – vinod

+0

Ayarladığınız JVM seçeneklerini kaydeder misiniz? –

cevap

5

Evet, analiz edilen kod tabanı büyükse sonar findbugs executor çok fazla RAM kullanabilir.

Sadece JVM'de bulunan yığın boyutunu değil, aynı zamanda "MaxPermSize" ve "ReservedCodeCacheSize" (en azından Java Hotspot Sanal Makine için) değerini artırmanız gerekecektir. JVM seçenekleri, FindBugs sonar yürütücüsünü gerçekte yürüten JVM'de ayarlanmalıdır. Muhtemelen Jenkins VM değil, Jenkins'in işe başlaması. Ayrıca

-Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=128m 

: Ben sen, sen gibi düşük değerlere için giderdim kullanarak varsayarak yaşıyorum 32bit sistemde,

-Xmx3062m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m 

: Burada

bir 64bit sistem için bir örnek Eğer Jenkins JVM seçeneklerini kabul etmezse, Jenkins'in sonar ant görevini kullanarak sonar çalıştırmayı deneyebilirsiniz. (Ben de bunu yapıyorum ve istediğim kadar bellek ayarlayabilirim.)

+0

, Jenkins'den MAVEN_OPTS aracılığıyla tüm thos ayarlarını denedi, ancak ne yazık ki başarı :( – gvasquez