Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gwt项目之间建立共享项目?_Gwt - Fatal编程技术网

如何在gwt项目之间建立共享项目?

如何在gwt项目之间建立共享项目?,gwt,Gwt,我有一个GWT游戏项目。我想把一些基类拉到一个可以与我的所有其他GWT游戏项目共享的项目中。比如: |- com.me.mylib | |---- mylib.gwt.xml // not sure of the contents here | |- com.me.mylib.client | |---- classes you want included clientside go here. FarmFrenzyFinale(gwt游戏项目) AcesOverNew

我有一个GWT游戏项目。我想把一些基类拉到一个可以与我的所有其他GWT游戏项目共享的项目中。比如:

 |- com.me.mylib
 |    |---- mylib.gwt.xml // not sure of the contents here
 |
 |- com.me.mylib.client
 |    |---- classes you want included clientside go here.
  • FarmFrenzyFinale(gwt游戏项目)
  • AcesOverNewYork(gwt游戏项目)
  • mylib(上面两个可以导入的共享项目)
项目“mylib”中包含一些通用的东西,比如欧几里德距离方法,或者其他一些操作GWT特定类的方法,比如向根面板添加标签

在阅读了许多关于这个主题的文章之后,似乎如果我们想在GWT客户端代码中包含“mylib”,我们需要有特定的包命名和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,Properties->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'/>

嗯,我还缺什么


谢谢

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

如果不打算使用maven,可以跳过POM部分,其余代码都是纯GWT
  • 对于库项目,您可以使用一个简单的Java项目
  • 您不需要“mylib.gwt.xml”
  • 是的,您只需右键单击项目,属性->java构建路径->项目->添加

  • 如果您将游戏的.gwt.xml文件放入“com.me”(在其项目中)并添加
    ,那么您所要做的就是创建一个“com.me.client”在游戏项目和库项目中都打包。

    mylib,它是否包含客户端代码?是的,它包含对GWT类等的引用。好的,我想这就是我如何设置的,但仍然会出现运行时错误,即无法在引用的库项目中找到类。更新了上面的问题以反映它s当前状态。这是因为您的.gwt.xml文件位于“com.me.acesovernyWork”中。它必须位于公共基本包(如“com.me”)中,“客户端”包必须(不幸的是)是该文件的直接子包。然后您可以拥有例如“com.me.client.acesovernyWork”和“com.me.client.mylib”。