在哪里放置我自己的谷歌模拟课程?

时间:2011-03-22 16:25:30

标签: gwt gwt-rpc

这是我当前的设置

src/
    com
        acme
            Model.gwt.xml   
            model
                token
                    Token.java
    ...
test/
super
    com
        acme
            jre
                java
                    lang
                        CloneNotSupportedException.java (introducing class since GWT doesnt support it)
        google              
            gwt
                emul
                    java
                        lang
                            Character.java (added a method that GWT doesn't support)

Model.gwt.xml中的超级源路径

super-source path="jre"

编译时,编译器会在我的模拟类中抱怨错误

  

令人困惑的...... Token.java

     

... isWhitespace(char)未定义   类型字符...没有源代码   可用于类型   java.lang.CloneNotSupportedException;

它似乎没有拿起我模仿的东西。

在GWT文档之后我还尝试将“jre”文件夹放到src / com / acme /中,即字面上在同一级别有模块xml。但是没有用。

我在帖子中读到google的emul被自己拾起,因此我将jre和google的东西都放在了super中,但只包含了“jre”作为超级源代码

我正在使用gwt-maven-plugin进行编译,我的pom.xml摘录是

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

要在eclipse中摆脱来自super source的编译错误,只需修改你的java构建路径;在您拥有模拟代码的任何源文件夹中,放入一个排除过滤器,例如**/jre/**/*.java**/emul/**/*.java。这将保持ide的快乐,而gwt开发者模式和编译将在它的类路径上都有模拟的超级源。

哦,我注意到你正在使用maven,而不是eclipse。只需在maven-source-plugin中排除您的模拟包。这样,maven编译器永远不会看到模拟文件,并且gwt:goals的源包仍然是完整的。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
                <excludes>
                    <value>**/emul/**/*.java</value>
                </excludes>
            </configuration>
        </plugin>
    </plugins>

IDE用户的提示(在Eclipse中尝试过)

要确保上述排除过滤器在Maven项目更新/导入之间保持不变,请在Maven编译器插件配置中添加<excludes>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <excludes>
                    <value>**/emul/**/*.java</value>
                </excludes>
            </configuration>
        </plugin>

答案 1 :(得分:0)

它无法工作的原因是因为您可能仍在开发人员模式下运行。上面完成的代码应该在GWT编译和部署应用程序时起作用。