正常的GWT项目有客户端代码和服务器代码。我想在同一个playN项目中编写单独的客户端和服务器代码。当我编译当前项目时,我得到错误,例如,找不到模块,java.lang.Thread ,因为GWT客户端代码不支持它。对于我的项目,我需要添加很多服务器代码,我需要完整的Java包。
主要问题是,我有自己的库,里面装满了服务器端代码,当我添加库时,我遇到了这个问题。
如何将客户端代码和服务器代码分开,以免它给我一个上面提到的错误?如果我们可以分离客户端和服务器代码,有没有办法只为服务器端代码添加库?
提前致谢..
答案 0 :(得分:0)
我不知道PlayN,但是在GWT中你定义了使用
为客户端编译的路径<source path='client' />
<。>在.gwt.xml文件中。模块文件文件夹下的其他路径被编译为服务器端代码。
为了更全面地理解你的问题,我git-cloned播放样本showcase,然后我看一下文件层次结构(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,如果声明适当,它可以编译。