2012-04-11 34 views
5

我是新來的聲納。我使用聲納pulgin從詹金斯運行聲納。聲納findbugs堆大小

,當我從詹金斯我在FindBugs的

低於

走出內存異常的運行是錯誤:

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 

我聲納的版本是2.13

當我增加JVM Jenkins聲納插件中的選項爲1280它顯示如下錯誤:

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit`enter code here` 
+0

你的機器有多少內存? 1280似乎超過了可用的1037M – oers 2012-04-12 12:40:05

+0

我的系統RAM是3 GB。 – vinod 2012-04-13 10:50:55

+0

你可以發佈你設置的JVM選項嗎? – 2012-10-19 13:19:12

回答

5

是的,如果分析的代碼庫很大,聲納findbugs執行器可以使用大量RAM。

您將不得不增加可用於JVM的堆大小,而且還需要增加「MaxPermSize」和「ReservedCodeCacheSize」(至少對於Java Hotspot VM)。 JVM選項必須在實際執行FindBugs聲納執行器的JVM上設置。所以可能不是Jenkins VM,而是Jenkins開始工作的那個。

下面是64位系統的例子:

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

在32位系統,我假設你使用,你會去爲較低的值,如:

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

而且,如果詹金斯不接受JVM選項,則可以嘗試使用Jenkins的聲納螞蟻任務來運行聲納。 (這就是我正在做的,我可以設置儘可能多的內存,因爲我喜歡。)

+0

通過Jenkins的MAVEN_OPTS嘗試了所有thos設置,但不幸的是沒有成功:( – gvasquez 2018-01-29 19:06:52