GWT包结构问题 - 模块没有定义入口点

时间:2016-11-04 10:31:14

标签: java spring maven java-ee gwt

我没有考虑gwt中的实验并将其中一个gwt项目ant迁移到maven以进行devops迁移。

在ant build中它工作正常。

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

  

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

这是样本结构

enter image description here

主模块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>

1 个答案:

答案 0 :(得分:0)

据我所知,您的主模块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插件)。 / p>

考虑将一些配置添加到您的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编译器在哪里查找要转换为JavaScript的Java类,以便使您的入口点类可访问。