我正在使用声纳和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)环境变量,但仍然收到错误。
有谁能告诉我出了什么问题,以及如何解决这个问题?
答案 0 :(得分:6)
您几乎觉得在-Xms参数中省略了'm':
$java -Xms512 -version
Error occurred during initialization of VM
Too small initial heap
检查其他环境变量的值以查看是否有任何与Java相关的定义(Windows上的'set'命令应该全部打印出来)不会受到影响 - 检查_JAVA_OPTS,MAVEN_OPTS等。
答案 1 :(得分:1)
Sonar Cobertura插件有一个特定的参数来增加分配给Cobertura进程的内存:sonar.cobertura.maxmem
例如,你可以运行:mvn sonar:sonar -Dsonar.cobertura.maxmem = 512m
请参阅http://docs.codehaus.org/display/SONAR/Code+coverage+plugins#Cobertura