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

ang*_*ein 1 java gwt maven

我正在使用 gwt-maven-plugin 在 Maven 中构建 GWT 项目。

最近,我注意到一个类上有一个错误,其中在客户端类上调用了一些服务器代码。起初我以为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?
Run Code Online (Sandbox Code Playgroud)

为什么这只是一个信息日志?为什么这不会破坏构建?我可以强制构建在出现此类错误时中断吗?

Col*_*rth 5

是的,你可以,事实上你应该!将来甚至有可能默认启用此选项,因为此类“可恢复”错误会导致编译器出现性能问题,因为编译器会不断恢复并解决丢失的代码。

使用 Maven 插件,您只需将此标志设置为 true 即可。来自http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html#failOnError

错误失败:

如果任何输入文件包含错误,则编译失败。可以使用“ ”从命令行进行设置-Dgwt.compiler.strict=true

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

<failOnError>true</failOnError>
Run Code Online (Sandbox Code Playgroud)

(这曾经被称为<strict>,在我自己的一些 pom 文件中,仍然是这样的......)