长城。马文。<module_name> 在项目源或资源中找不到 GWT 模块



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

我知道GWT模块,其中将使用共享.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没有。

问题出在哪里?谢谢。

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

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

干杯

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

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

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

为了编译。

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

  • 如果要引用 GWT 模块,则需要以点表示法指向不带文件扩展名的*.gwt.xml文件。 例如 com.example.ThirdPartycom/example/ThirdParty.gwt.xml模块
  • 要导入第三方模块,请将<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位于您的类路径上

笔记:

  • 如果 ThirdParty GWT 模块没有入口点,则不需要使用 GWT 编译器进行编译
  • GWT 编译器不需要额外的配置来包含 ThirdParty 模块,只要它的 jar 在类路径上并且您的*.gwt.xml继承ThirdParty.gwt.xml;这同样适用于 GWT Maven 插件

相关内容

  • 没有找到相关文章

最新更新