无法找到使用Ant编译GWT项目的MyModule.gwt.xml

时间:2013-09-15 11:48:46

标签: java gwt ant

我对这个ant脚本有错误:

<path id="gwt-client.classpath">
    <fileset dir="${src.dir}">
        <include name="**/*.gwt.xml" />
    </fileset>
    <pathelement location="${gwt.client.dir}" />
    <pathelement location="${gwt.shared.dir}" />
</path>

<path id="gwt-sdk.classpath">
    <fileset dir="${gwt.sdk.dir}">
        <include name="**/*.jar" />
    </fileset>
</path>

<target name="gwt-compile" depends="prepareResources">
    <property name="clientClasspath" refid="gwt-client.classpath" />
    <echo message="==> gwt-client classpath = ${clientClasspath}" />
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
        <classpath>
            <path refid="gwt-sdk.classpath" />
            <path refid="gwt-client.classpath" />
        </classpath>
        <jvmarg value="-Xmx256M" />
        <arg line="${gwt.module.name} -logLevel INFO  -style PRETTY" />
    </java>
</target>

虽然控制台告诉我很棒的事情:

[echo] ==> gwt-client classpath = 
  C:\code\repository\comments\src\io\robusta\fora\comments\Comments.gwt.xml;
  C:\code\repository\comments\src\io\robusta\fora\comments\client;
  C:\code\repository\comments\src\io\robusta\fora\comments\shared

所有这些文件都存在,但我有一个非常经典的错误:

[java] Loading inherited module 'io.robusta.fora.comments.Comments'
     [java]    [ERROR] Unable to find 'io/robusta/fora/comments/Comments.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?

我倾向于认为我错过了路径,pathelement,refid之间的Ant术语......或者错误消息应该查找src/io/robusta/fora/comments/Comments.gwt.xml而不是io/robusta/fora/comments/Comments.gwt.xml

1 个答案:

答案 0 :(得分:3)

我认为你误解了 classpath 是如何工作的。类路径中的每个路径元素都是 root ,解析了完全限定名称(包+类名)。这些路径可以是文件夹或存档(ZIP或JAR)。

io.robusta.fora.comments.client包中的类(在您的情况下)C:\core\repository\comments\src文件夹中的类。这就是类路径中的内容。

资源相同:io/robusta/fora/comments/Comments.gwt.xml在类路径中查找,因此,在您的情况下,C:\core\repository\comments\src应该在类路径中,以便相对路径可以正确解析为文件。