Я пытаюсь понять, как работает компиляция 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: забыл добавить.
У меня возникает соблазн предположить, что компиляция терпит неудачу, когда ошибка находится в чем-то, достижимом непосредственно из точки входа, и что компиляция проходит нормально, когда этот код недоступен. Однако у меня есть контрпример кода с аннотациями. У меня есть код, доступный из точки входа, и есть аннотации, исходный код которых недоступен, и тем не менее компиляция проходит успешно (хотя это единственное исключение, которое я пока смог найти).