2012-08-07 150 views
0

我有一个GWT游戏项目。我想将一些基类放到一个可以与我所有其他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项目,所以我猜测只要我们将结构设置为ok,我们就可以做一个普通的“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” 添加项目在classpath(在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

mylib,它是否包含客户端代码? – 2012-08-07 12:40:07

+0

是的,它会引用GWT类等。 – user291701 2012-08-07 13:43:36

回答

0
  • 对于库项目,你可以使用一个简单的Java项目。
  • 你并不需要一个 “mylib.gwt.xml”
  • 是的,你可以简单地右键单击该项目,属性 - > Java构建路径 - >项目 - >添加

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

+0

好吧我认为这是我设置好的东西,但仍然得到运行时错误,无法在引用的lib项目中找到类。更新了上面的问题以反映其当前状态。 – user291701 2012-08-07 15:43:38

+0

这是因为您在“com.me.acesovernewyork”中有您的.gwt.xml文件。它必须位于一个**通用**基础包(如“com.me”)中,并且“客户”包必须(不幸地)成为它的直接子包。然后你可以有例如“com.me.client.acesovernewyork”和“com.me.client.mylib”。 – 2012-08-07 16:00:57

0

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

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

可以跳过POM部分,如果你不打算使用Maven,其余代码是纯粹的GWT