如果在客户端代码中使用来自服务器包的注释,GWT 会编译吗?

Will GWT compile if an annotation from server package is used in client code?

如果在服务器包下创建的自定义注释被共享 Class 引用,GWT 会编译我的 class 吗?

我需要用带有某些属性的注释 @MyRecord 来注释我的记录类型 classes。这样我就可以使用反射在服务器端获取属性值。由于记录类型 class 在客户端和服务器代码中共享并使用。

注意:@MyRecord在服务器下,GWT编译器无法编译。

它会不会有任何问题或任何替代方法?请帮忙

我在自己尝试后发布。
我的 GWT 项目中有以下 classes/interfaces 和注释。

agazhi
    client
        Agazhi.java
        AgazhiService.java
        AgazhiServiceAsync.java
    server
        AgazhiServiceImpl.java
        Soldier.java
        Staff.java
    shared
        Commander.java
    Agazhi.gwt.xml

其中 Commander 是我的记录类型,@Soldier 是注释,Staff 是接口。
Commander class 的对象通过服务从客户端传递到服务器。

测试用例:

  • 如果我在 Commander 中使用 @Soldier 注释编译模块 class 它有效。
  • 如果我用 Staff 接口编译 Commander class,报错

No source code is available for type agazhi.server.Staff; did you forget to inherit a required module?

感谢大家的宝贵时间。

如果您想使用在 Commander class 上实现的 Staff 接口进行编译,您可能需要将 Staff.java 移动到共享包中,以便 GWT 编译器可以将其翻译成 JavaScript .此外,Staff.java 不应依赖于其他无法翻译为 GWT 编译器的 classes。

更多信息请参考模块XML文档:http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml