Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT编译器:编译错误何时是致命的?_Java_Gwt_Gwt 2.7_Gwt 2.8 - Fatal编程技术网

Java GWT编译器:编译错误何时是致命的?

Java GWT编译器:编译错误何时是致命的?,java,gwt,gwt-2.7,gwt-2.8,Java,Gwt,Gwt 2.7,Gwt 2.8,我正试图更多地了解GWT编译是如何工作的 更具体地说,我想知道GWT如何判定某个特定错误是致命的,应用程序编译应该因此失败,以及即使存在编译错误,GWT如何判定编译成功 我这样问的原因是,在进行搜索时,很难区分我日志中的合法错误和似乎不会引起任何问题的错误 我说的是GWT2.7和GWT2.8(我看到它们表现出相同的行为)。 另外,我正在使用GWTP 1.5.3,如果这有点相关的话 一个具体的例子:我的日志中有这个错误: Tracing compile failure path for type

我正试图更多地了解GWT编译是如何工作的

更具体地说,我想知道GWT如何判定某个特定错误是致命的,应用程序编译应该因此失败,以及即使存在编译错误,GWT如何判定编译成功

我这样问的原因是,在进行搜索时,很难区分我日志中的合法错误和似乎不会引起任何问题的错误

我说的是GWT2.7和GWT2.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.
上面的错误不会使我的应用程序编译失败,而且我的应用程序工作得很好(该类注册了一些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?
'com/google/gwt/validation/client/impl/AbstractGwtSpecificValidator.java'中的
错误
第102行:javax.validation.ValidationException类型没有可用的源代码;您是否忘记继承所需的模块?
第177行:javax.validation.ConstraintValidator类型没有可用的源代码;您是否忘记继承所需的模块?
第153行:javax.validation.groups.Default类型没有可用的源代码;您是否忘记继承所需的模块?
第302行:javax.validation.ConstraintViolation类型没有可用的源代码;您是否忘记继承所需的模块?
这些错误也不会使我的编译失败。为什么?

编辑1:忘记添加了

我很想猜测,当错误出现在从入口点可以直接访问到的内容中时,编译会失败,而当无法访问该代码时,编译是正常的。 然而,我有带注释的代码的反例。 我有可以从入口点访问的代码,并且有源代码不可用的注释,但是编译成功了(尽管这是迄今为止我能找到的唯一例外)。

您的分析很好

GWT将扫描整个类路径,忽略不在源路径中的所有内容并“重定”超级源。在扫描过程中,它会发出您看到的那种错误,但只有当代码到达丢失的源(从入口点)时,错误才会变得致命。注释也不例外,但代码永远不会真正作为元数据到达它们(除非实现Java允许的
@interface
)。但是,生成器可以使用注释,在这种情况下,注释可能会使生成失败

请注意,如果使用
-failOnError
(或
-strict
,这是一个别名),则所有错误都是致命的。你应该把目标放在IMO上