【发布时间】:2017-02-13 16:45:26
【问题描述】:
我正在尝试更多地了解 GWT 编译的工作原理。
更具体地说,我想知道 GWT 如何确定特定错误是致命的,应用程序编译应该因此而失败,以及它如何确定编译成功,即使存在编译错误。
我问的原因是,在进行搜索时很难区分我的日志中的合法错误和似乎不会导致任何问题的错误。
我说的是 GWT 2.7 和 GWT 2.8(我已经看到它们表现出相同的行为)。 另外,我使用的是 GWTP 1.5.3,如果这有点相关的话。
一个具体的例子:我的日志中有这个错误:
Tracing compile failure path for type 'myApp.ClientModule'
Errors in 'file:/E:/data/.../myApp/ClientModule.java'
Line 24: No source code is available for type myApp.client.ServicesProvidersModuleGen; did you forget to inherit a required module?
Checked 1 dependencies for errors.
上面的错误不会使我的应用程序编译失败,并且 myApp 工作正常(该类是注册一些 GIN 绑定的东西,它也可以工作)。
为什么 GWT 在遇到该错误时没有使我的编译失败?
此外,我还有其他错误,例如:
Errors in 'com/google/gwt/validation/client/impl/AbstractGwtSpecificValidator.java'
Line 102: No source code is available for type javax.validation.ValidationException; did you forget to inherit a required module?
Line 177: No source code is available for type javax.validation.ConstraintValidator<A,T>; did you forget to inherit a required module?
Line 153: No source code is available for type javax.validation.groups.Default; did you forget to inherit a required module?
Line 302: No source code is available for type javax.validation.ConstraintViolation<T>; did you forget to inherit a required module?
这些错误也不会导致我的编译失败。为什么?
Edit1:忘记添加了。
我很想猜测,当错误位于可从入口点直接访问的内容中时,编译会失败,而当无法访问该代码时,编译是可以的。 但是,我有带注释的代码的反例。 我有可以从入口点访问的代码,并且有源代码不可用的注释,但编译成功(尽管这是迄今为止我能找到的唯一异常)。
【问题讨论】: