2010-09-04 130 views
4

我想有多个共享公共代码的GWT项目。这可能吗? AFAICT我的GWT项目需要各自拥有自己的目录,并且直接在源代码之下,这似乎排除了代码共享。我尝试使用链接的文件夹,但GWT似乎并不喜欢(描述为here)。如何在多个GWT eclipse项目之间共享代码?

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

还有其他解决方案吗?

回答

1

我认为您所需要做的就是制作两个独立的GWT项目,例如对于使用代码项目A.

一旦你有这两个项目共享代码和项目B类项目A,需要两个步骤:

  1. 添加项目中的项目在Eclipse B的构建路径。
  2. 继承项目A的项目B.

gwt.xml您现在应该能够使用托管模式/在Eclipse编译。

+0

我期待着尽快尝试。谢谢。 – 2010-09-06 20:18:38

+0

这只是解决方案的一半,因为当项目A被添加到项目B的构建路径中时,项目B将只能看到A的编译类,而不是'.java'文件,并且GWT编译器需要'.java '文件。因此,您必须将Java文件作为“资源”添加到A的输出中。如果A是Maven项目,则可以这样做,正如morisil在上面显示的那样。 – ddekany 2014-03-16 12:49:51

4

我在maven的帮助下解决了这个问题。通用代码打包为单独的maven项目,然后用作库。下面是从pom.xml文件摘录:由GWT编译器需要到最终的jar

<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> 

上面构建配置额外的复制源文件。

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

+0

我对Maven没有太多的工作,但在这一点上看起来不可避免,所以我会在有机会的时候尝试。谢谢。 – 2010-09-06 18:33:17

+0

它在这里工作,应该接受?我甚至不需要运行Maven构建,因为Eclipse Maven集成(至少在开普勒)会在保存输出目录时自动更新'.java'文件。 – ddekany 2014-03-16 12:46:04

相关问题