想必大家都使用过cobertura-maven-plugin插件来实现代码覆盖率的统计。当升级到java8之后,如果项目的代码中使用了java的lamda表达式(类似 list.stream.foreach( i -> System.out.println(i))等,当执行 mvn clean cobertura:cobertura 命令的时候,会出现如下如下信息:
[WARN] JavaNCSS got an error while parsing the java file
Encountered " ">" "> "" at line
Was expecting one of:
"assert" ...
"boolean" ...
"byte" ...
这个问题导致到原因是什么呢?
(The root cause of this issue is that the NCSS library ( https://github.com/codehaus/javancss ) that Cobertura uses is not able to handle Java8 syntax)。
暂时没有什么好的解决方法,只能屏蔽一些错误信息。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
**<quiet>true</quiet>**
<formats>
<format>xml</format>
</formats>
<instrumentation>
**<ignoreTrivial>true</ignoreTrivial>**
</instrumentation>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>