2012-02-17 53 views
1

我使用聲納和cobertura(代碼覆蓋率)。我對我面臨的問題感到困惑。如果我運行在聲納「太小的初始堆」中的錯誤cobertura

mvn sonar:sonar 

我的執行過程中看到以下錯誤

[INFO] 
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core <<< 
[INFO] 
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core --- 
[INFO] Error occurred during initialization of VM 
Too small initial heap 

[ERROR] Error in Cobertura Report generation: Unable to generate Cobertura Report for project. 
org.apache.maven.plugin.MojoExecutionException: Unable to generate Cobertura Report for project. 
     at org.codehaus.mojo.cobertura.tasks.ReportTask.execute(ReportTask.java:93) 

如果我運行的Cobertura插件直接使用以下

mvn cobertura:cobertura 

沒有錯誤同上,顯示下面的輸出,我認爲是預期的輸出。

[INFO] 
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core <<< 
[INFO] 
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ hss-core --- 
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file 
Cobertura: Loaded information on 39 classes. 
Report time: 1035ms 

我已經設置了MAVEN_OPTS(MAVEN_OPTS = -Xms512m)環境變量,但仍然得到錯誤。

誰能告訴我哪裏出了問題,以及如何解決這個問題?

回答

5

它幾乎感覺不到你在你的-Xms參數省略的「m」:

$java -Xms512 -version 
Error occurred during initialization of VM 
Too small initial heap 

不會傷害到檢查其他環境變量的值,看看是否有任何與Java相關的定義(「設置「在Windows命令應全部打印出來) - 檢查_JAVA_OPTS,MAVEN_OPTS等

+0

做了,謝謝您的好意。此外,如果它確實存在,爲什麼「mvn cobertura:cobertura」運行正常,但「mvn sonar:sonar」不會。 – 2012-02-17 06:36:29

+1

當我第一次看到這個答案時,我認爲它是在暗示缺少的m是在X之後:'-Xs512',但是對於我來說,缺少的m是512之後的megs。我有-Xms512,當它應該是-Xms512m。 – OleTraveler 2013-03-07 17:13:58

1

聲納的Cobertura插件有一個特殊的參數,以增加分配給的Cobertura進程的內存:sonar.cobertura.maxmem

例如,你可以運行:mvn聲納:兒子AR -Dsonar.cobertura.maxmem =512米

http://docs.codehaus.org/display/SONAR/Code+coverage+plugins#Cobertura

+0

這個問題似乎是'太小的初始堆',這與最小堆大小有關。 – Raghuram 2012-02-17 07:10:40

+0

我試過使用 ..,這是一回事,對不對?仍然產生相同的錯誤。 :( – 2012-02-17 09:52:58