WebApp无法找到类型,如何将源代码编译到目标目录中

时间:2014-04-04 09:58:48

标签: google-app-engine maven gwt

基本上我需要2个maven模块,并且应该通过从另一个继承客户端来启动应用程序(因为客户端包含EntryPoint)。 因此我有2个.gwt.xml文件和pom.xml文件。

gwt.gwt.xml

<module>

    <!-- Inherit the core Web Toolkit stuff. -->
    <inherits name='com.google.gwt.user.User' />
    <inherits name='org.fusesource.restygwt.RestyGWT' />
    <!--Specify the app entry point class. -->
    <entry-point class='com.myapp.admin.client.EntryPoint'/>    

    <source path='client'/>
    <source path='rest'/>
    <source path='consts'/>

</module>

web.gwt.xml

<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<inherits name='com.myapp.admin.gwt' /> 

POM客户端(gwt),包装:jar

<plugins>
    <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                    <goal>jar-no-fork</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>

POM网站,包装:战争

    <!-- GWT Maven Plugin -->
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>compile</goal>
                </goals>
            </execution>
        </executions>

<!-- Copy static web files before executing gwt:run -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>

</plugin>

加上它包含与gwt-module <classifier>sources</classifier>的依赖关系。我可以编译我的应用程序没有错误但我无法运行它,因为

[错误] [网页] - 无法找到类型&#39; com.myapp.admin.client.EntryPoint&#39;     [错误] [网页] - 提示:检查类型名称&#39; com.myapp.admin.client.EntryPoint&#39;真的是你的意思     [错误] [网页] - 提示:检查您的类路径是否包含所有必需的源根

这是合理的,因为目录中没有源。但为什么没有来源?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当使用M2Eclipse和#34;解决来自工作空间的依赖关系时,类型不同于jar的依赖关系(例如java-source)或分类器都解析为{{1} Eclipse项目,所以你实际上并没有在类路径中获取源代码。

AFAIK,Eclipse的Google插件从M2Eclipse获取类路径,因此您无法获得源代码。您需要编辑启动配置,以将您依赖的项目的源目录(target/classes和可能的其他目录)添加到类路径中。