0

我有一个 GWT 游戏项目。我想将一些基类提取到一个可以与我所有其他 GWT 游戏项目共享的项目中。就像是:

  • FarmFrenzyFinale (gwt 游戏项目)
  • AcesOverNewYork(gwt 游戏项目)
  • mylib(以上两个可以导入的共享项目)

项目“mylib”将包含一些通用的东西,比如欧几里德距离方法,也可能是其他一些在 GWT 特定类上运行的方法,比如将标签添加到 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应用程序”项目?一个新的“web 应用程序”项目将为我们创建一个独立的 gwt 项目,所以我猜我们可以只做一个普通的旧“java 项目”,只要我们设置上面的结构就可以了。

然后在上述设置完成后,我们可以将“mylib”添加到游戏的类路径中(farm frenzy 等)。只需右键单击项目,属性 -> 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'/>

嗯,我在这里还缺少什么?

谢谢

4

2 回答 2

0

不知道你有没有听说过maven。实际上这并不重要,但 maven 有一个关于设置多项目 GWT 的教程。即使您不使用 maven,您也应该检查它,因为它包含有用的信息。

http://mojo.codehaus.org/gwt-maven-plugin/user-guide/multiproject.html

不打算使用maven的可以跳过POM部分,其余代码都是纯GWT

于 2012-08-07T14:13:05.833 回答
0
  • 对于库项目,您可以使用简单的 Java 项目。
  • 您不需要“mylib.gwt.xml”
  • 是的,您只需右键单击项目,属性-> java 构建路径-> 项目-> 添加

如果您将游戏的 .gwt.xml 文件放入“com.me”(在他们的项目中)并添加<source path='client' />,那么您所要做的就是在您的游戏项目中创建一个“com.me.client”包,并在您的库项目中。

于 2012-08-07T14:24:29.633 回答