如何在多个GWT eclipse项目之间共享代码?

时间:2010-09-04 15:08:19

标签: java eclipse gwt module organization

我希望有多个共享公共代码的GWT项目。这可能吗? AFAICT我的GWT项目需要每个都有自己的目录,源代码直接在下面,这似乎排除了代码共享。我尝试使用链接文件夹,但GWT似乎不喜欢(描述here)。

如果我想这样做,我唯一的选择是将我想要共享的代码转换为.jar文件,然后在我的每个项目的XML文件中继承它?有没有办法让eclipse自动进行这种打包,还是需要某种'change-shared-code / compile-jar / use-in-other-project'循环?

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:4)

我在maven的帮助下解决了这个问题。公共代码打包为单独的maven项目,然后用作库。以下是pom.xml文件的片段:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.0.4</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-dev</artifactId>
  <version>2.0.4</version>
  <scope>provided</scope>
</dependency>

<build>
  <resources>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/client/**/*.java</include>
        <include>**/client/**/*.properties</include>
        <include>**/shared/**/*.java</include>
        <include>**/shared/**/*.properties</include>
        <include>**/*.gwt.xml</include>
      </includes>
    </resource>
  </resource>
</build>

上面的构建配置将GWT编译器所需的其他源文件复制到最终的jar中。

如果将eclipse用作IDE,m2eclipse插件可用于自动处理所有依赖项。可以在单个工作空间中打开所有项目,并共享公共项目的类路径。唯一的缺点是需要不时调用project > clean(将强制嵌入式maven复制上面代码段中指定的所有资源)。

答案 1 :(得分:1)

我认为您需要做的就是制作两个单独的GWT项目,例如:项目A用于共享代码,项目B使用项目A中的代码。

一旦有了这两个项目,就需要两个步骤:

  1. 将项目A添加到Eclipse中的项目B的构建路径。
  2. 在项目B中继承项目A的gwt.xml。
  3. 您现在应该能够在Eclipse中使用托管模式/编译。