我有一个GWT游戏项目。我想把一些基类拉到一个可以与我所有其他GWT游戏项目共享的项目中。类似的东西:
项目“mylib”会有一些通用的东西,比如可能是欧几里德距离方法,也许还有一些其他方法可以在特定于GWT的类上运行,比如将一个Label添加到RootPanel。
在阅读了关于这个主题的很多帖子后,似乎如果我们想要将“mylib”包含在GWT客户端代码中,我们需要具有特定的包命名和projectname.gwt.xml文件。应该看起来像:
|- com.me.mylib
| |---- mylib.gwt.xml // not sure of the contents here
|
|- com.me.mylib.client
| |---- classes you want included clientside go here.
以上是否正确?如果是这样,在eclipse中创建项目时,我们只是创建一个新的“java项目”,还是我们应该创建一个新的“Web应用程序”项目?一个新的“网络应用程序”项目将为我们创建一个独立的gwt项目,所以我猜我们可以只做一个普通的“java项目”,只要我们设置上面的结构就可以了。
然后在上面的设置之后,我们可以将“mylib”添加到游戏的类路径中(农场疯狂等)。这可以简单地点击项目,属性 - > java构建路径 - >项目 - >加?
由于
--------更新---------------
这是我的项目目前的样子:
AcesOverNewYork
|-- com.me.acesovernewyork
| |-- acesovernewyork.gwt.xml
|-- com.me.acesovernewyork.client
|-- all java files here, great.
mylib (not a gwt project, just a java project)
|-- com.me.mylib.client
|-- Foo.java
现在AcesOverNewYork(AONY)已将“mylib”添加为类路径中的项目(在eclipse中,右键单击AONY,属性 - > Java构建路径 - >项目 - >添加 - >“mylib”。
我在AONY中使用Foo类,编译得很好。当我尝试运行AONY时,出现运行时错误:
"No source code is available for type com.me.mylib.client.Foo;
did you forget to inherit a required module?"
我的acesovernewyork.gwt.xml文件中包含以下内容:
<source path='client'/>
嗯,我还缺少什么?
由于
答案 0 :(得分:0)
我不知道你是否听说过maven。实际上它并不重要,但maven有一个关于设置多项目GWT的教程。即使您不使用maven,也应检查它是否包含有用的信息。
http://mojo.codehaus.org/gwt-maven-plugin/user-guide/multiproject.html
如果您不打算使用maven,可以跳过POM部分,所有其余代码都是纯GWT
答案 1 :(得分:0)
如果您将游戏的.gwt.xml文件放入“com.me”(在他们的项目中),并添加<source path='client' />
,那么您所要做的就是创建一个“com.me.客户“在你的游戏项目和你的图书馆项目中打包。