4

我有一个 Maven 多模块项目。其中一个模块(编译为.jar)仅包含域对象,这些对象将在客户端和服务器端使用(我将此.jar作为依赖项添加到我的其他模块)。

我知道 GWT 模块,其中将使用 shared 的对象.jar,还必须有源文件才能成功编译。所以我试图添加到我的pom.xml 两者中:

        <resources> 
            <resource>
              <directory>src/main/java/<path></directory> 
              <includes> 
                <include>**/*.java</include> 
                <include>**/*.gwt.xml</include> 
              </includes> 
            </resource> 
        </resources>  

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <versionRange>[${gwt.version}]</versionRange>
    <goals>
        <goal>resources</goal>
    </goals>
 <plugin>

但结果.jar不包含 GWT 模块源(即gwt.xml)。域类的所有源也被添加(在根目录.jar),但ModuleName.gwt.xml不是。

问题出在哪里?谢谢。

4

3 回答 3

2

如果您的.gwt.xml文件在其中,那么如果您指定为资源路径src/main/resources/,它将不会被复制...src/main/java/

您可能应该省略该<resource>部分,让 GWT 插件在 jar 中包含源代码或至少有两个部分,一个用于.gwt.xml文件(src/main/resources或您放置它的位置),另一个用于源代码(就像您现在拥有的那样)。

干杯,

于 2012-11-14T15:45:28.023 回答
0

我今天正在解决这个错误,所以我只是发布我的修复:

使用 maven gwt 插件构建的多模块 gwt 项目需要在 pom.xml 中添加一个条目,例如:

  <modules>
        <module>../theothermodule</module>
  </modules>

为了编译。

于 2013-12-05T01:06:44.860 回答
0

这个错误有多种解释。检查清单:

  • 如果您引用的是 gwt 模块,则需要以*.gwt.xml点表示法指向文件,而不需要文件扩展名。egcom.example.ThirdPartycom/example/ThirdParty.gwt.xml模块
  • 要导入第 3 方模块,请添加<inherits name="com.example.ThirdParty" />到您的*.gwt.xml文件中
  • ThirdParty.gwt.xml应该包含一个或多个source指向可翻译代码的元素。例如<source path='shared' />
  • 所有可翻译的代码都ThirdParty.jar需要包含纯文本*.java源。例如com/example/shared/Widget.classcom/example/shared/Widget.java都存在
  • ThirdParty.jar你的类路径上

笔记:

  • 如果ThirdPartygwt 模块没有入口点,则不需要使用 gwt 编译器进行编译
  • gwt 编译器不需要额外的配置来包含ThirdParty模块,只要它的 jar 在类路径上并且你*.gwt.xml继承ThirdParty.gwt.xml;这同样适用于 gwt maven 插件
于 2016-02-04T13:51:45.893 回答