0

普通的 GWT 项目有客户端代码和服务器代码。我想在同一个 playN 项目中编写单独的客户端和服务器代码。当我编译我当前的项目时,我得到了诸如找不到模块 java.lang.Thread之类的错误,因为 GWT 客户端代码不支持它。对于我的项目,我需要添加大量服务器代码,并且需要完整的 Java 包。

主要问题是,我有自己的库,里面装满了服务器端代码,当我添加库时,我遇到了这个问题。

如何将客户端代码和服务器代码分开,以免出现上述错误?如果我们可以分离客户端和服务器代码,有没有办法只为服务器端代码添加库?

提前致谢..

4

1 回答 1

0

我不知道 PlayN,但在 GWT 中,您定义了要为客户端编译的路径

<source path='client' />

在您的 .gwt.xml 文件中。模块文件夹下的其他路径编译为服务器端代码。

为了更全面地了解您的问题,我 git-clone 了 play sample展示柜,然后查看了文件层次结构(顺便详细说明了 GWT 部分)。

showcase/
   android/
      ...
   core/
      ...
   flash/
      ...
   html/
      src/
         main/
            java/
               playn/
                  showcase/
                     html/
                        ShowcaseHtml.java
                     Showcase.gwt.xml
            webapp/
               WEB-INF/
                  web.xml
               Showcase.html
      pom.xml
   ios/
     ...
   java/
     ...
   build.xml
   pom.xml

如我们所见,我们有html/src/main/java/playn/showcase/ Showcase.gwt.xmlhtml/src/main/java/playn/showcase/ html文件夹。

这是 Showcase.gwt.xml 内容:

<module rename-to='showcase'>
  <inherits name='playn.PlayN'/>
  <!-- for the peas sample -->
  <inherits name="org.jbox2d.GwtBox2D" />
  <!-- for the menu UI -->
  <inherits name='tripleplay.TriplePlay'/>
  <!-- for enhanced logging -->
  <inherits name="playn.logging.Enhanced" />

  <source path='core'/>
  <source path='html'/>

  <public path="resources" />

  <entry-point class='playn.showcase.html.ShowcaseHtml'/>
</module>

因此,就我的经验而言,如果存在包含代码的html/src/main/java/playn/showcase/服务器文件夹,并且没有从其他代码中引用此代码,则 GWT 编译器必须避免。然后使用 maven 如果适当地声明它可以被编译。

于 2012-03-09T10:45:53.033 回答