【问题标题】:GWT Package structure issue - Module has no entry points definedGWT 包结构问题 - 模块没有定义入口点
【发布时间】:2016-11-04 10:31:14
【问题描述】:

我没有在 gwt 和将其中一个 gwt 项目 ant 迁移到 maven 以进行 devops 迁移方面的经验。

在 ant build 中它工作正常。

但是当我使用带有 gwt-maven-plugin 的 maven 来生成低于错误​​的代码时。

[DEBUG] 找到类:类 com.google.gwt.dev.GWTCompile [INFO] 编译 GWT 模块 com.companyname.projectname.branch.gwt.Dto [调试] 调用 GWTCompiler#main(String[]) [错误] 模块没有定义入口点 [错误] 构建失败

这是示例结构

主模块 xml

<module>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.google.gwt.i18n.I18N' />
<inherits name='com.google.gwt.http.HTTP' />
<inherits name='com.companyname.projectname.branch.gwt.Dto' />
<inherits name='com.companyname.projectname.commons.Commons' />


<servlet path="/projectnamePLServicesImpl"
    class="com.companyname.projectname.pr.gwt.server.projectnamePLServicesImpl" />

<entry-point class='com.companyname.projectname.ui.gwt.client.MainModule' />

dto xml

<?xml version="1.0" encoding="UTF-8"?>
<module>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.google.gwt.i18n.I18N' />
</module>

和maven插件

            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
              <version>1.0</version>
              <configuration>
                <moduleName>com.companyname.projectname.ui.gwt.client.MainModule</moduleName>


                <!-- <logLevel></logLevel> -->
                </configuration>
                <executions>
      <execution>

        <goals>
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>

【问题讨论】:

    标签: java spring maven jakarta-ee gwt


    【解决方案1】:

    据我所知,您的主模块 gwt.xml 文件位于 com.companyname.projectname.ui.gwt 包中,因此您的 GWT Maven 插件配置必须是以下:

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>2.8.0</version>
        <configuration>
            <module>com.companyname.projectname.ui.gwt.MainModule</module>
            <!-- <logLevel></logLevel> -->
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
    </plugin>
    

    我还建议您使用与 GWT 工件相同版本的 gwt-maven-plugin(例如,如果您使用 GWT 2.8.0,则可以使用 2.8.0 版本的 GWT 插件)。

    考虑在您的 gwt.xml 主文件中添加一些配置,例如:

    <module>
        <inherits name='com.google.gwt.user.User' />
        <inherits name='com.google.gwt.i18n.I18N' />
        <inherits name='com.google.gwt.http.HTTP' />
        <inherits name='com.companyname.projectname.branch.gwt.Dto' />
        <inherits name='com.companyname.projectname.commons.Commons' />
    
    
        <!--servlet path="/uploadServlet"      class="com.companyname.rsa.gwt.demo.server.UploadServlet"/-->
    
        <servlet path="/projectnamePLServicesImpl"
    class="com.companyname.projectname.pr.gwt.server.projectnamePLServicesImpl" />
    
        <source path='client'/>
    
        <entry-point class='com.companyname.projectname.ui.gwt.client.MainModule' />
    </module>
    

    'source' 标签将告诉 GWT 编译器在哪里寻找 Java 类以转换为 JavaScript,从而使您的入口点类可访问。

    【讨论】:

    • 这是一个非常古老的 gwt 版本 1.4.10。如果我使用新的插件来获得 jdk 的兼容性。问题不在主模块中。它在 Dt​​o 包中 :(
    • 如果问题实际上出在 Dto 包中,那么要为这个模块创建一个虚拟入口点是什么? :) 例如,创建虚拟类,更改 dto.gwt.xml,指定入口点。你知道,只是想法:)
    猜你喜欢
    • 1970-01-01
    • 2011-04-23
    • 2013-09-07
    • 2021-05-01
    • 2013-03-22
    • 1970-01-01
    • 2011-04-04
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多