我不知道 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.xml和
html/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 如果适当地声明它可以被编译。