为什么GWT编译错误不会破坏Maven构建?

问题描述:

我正在使用gwt-maven-plugin在maven中构建一个GWT项目。为什么GWT编译错误不会破坏Maven构建?

最近我注意到一个类的错误,其中一些服务器代码在客户端类上调用。起初我以为gwt编译出错了(不包括这个类)。但后来我注意到它正在编译该类,并且它在信息日志级别抛出错误。

[INFO] Tracing compile failure path for type 'com.mycompany.shared.IElement' 
[INFO]  Errors in 'jar:file:/Users/myuser/.m2/repository/com/mycompany/package/package-java/1.0.0-SNAPSHOT/package-java-1.0.0-SNAPSHOT-sources.jar!/com/mycompany/shared/IElement.java' 
[INFO]   Line 45: No source code is available for type com.mycompany.test.Tester; did you forget to inherit a required module? 

为什么这只是一个信息日志? 为什么这不会打破构建? 我可以强制构建打破这种错误?

是的,你可以,而事实上你应该!它很可能会在未来默认使用此选项,因为这些“可恢复”错误会导致编译器出现性能问题,因为它会不断恢复和解决缺少的代码。

使用maven插件,您可以简单地将此标志设置为true。从http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html#failOnError

failOnError:

Fail compilation if any input file contains an error. Can be set from command line using ' -Dgwt.compiler.strict=true '.

在你的插件的<configuration>块,这看起来像

<failOnError>true</failOnError> 

(这曾经被称为<strict>,在我自己的一些POM文件,还住这样... )

+0

谢谢!!!!!!!!! –

+0

这适用于源代码,但似乎对集成测试没有影响。 https://gwt-maven-plugin.github.io/gwt-maven-plugin/test-mojo.html不会在接受的gwt:test标志中列出它。还有另外一种方法可以做这个测试吗? –