【发布时间】:2015-01-12 12:34:09
【问题描述】:
我正在尝试将项目从 gwt-2.6.1 迁移到 gwt-2.7。但是,我面临一个问题。由于某种原因,gwt 编译器忽略了 .gwt.xml 中的继承模块之一。所以我在 .gwt.xml 中有这样的东西:
<source path="">
...
<exclude name="servlet/**"/>
</source>
但是在使用带有 gwt-maven-plugin 的 maven 进行编译时,我不断收到这样的错误:
Tracing compile failure path for type 'my.module.servlet.SomeClass'
[INFO] [ERROR] Errors in 'jar:file:/path/to/jar/servlet/SomeClass.java'
[INFO] [ERROR] Line 15: No source code is available for type javax.servlet.ServletContext; did you forget to inherit a required module?
如您所见,gwt 尝试编译 servlet 目录中的文件,该文件在 .gwt.xml 中被排除。 可能是什么原因? gwt-2.6.1没有这样的问题。
编辑:我发现(在 gwt-maven-plugin 配置中)
<configuration>
<incrementalCompileWarnings>true</incrementalCompileWarnings>
</configuration>
是导致问题的原因(没有它项目编译)。但是,问题仍然存在。
【问题讨论】:
-
您确定
path=""是正确的吗?通常您指定一个子目录,如client或shared或类似的。如果为 emtpy,这可能无法正常工作,因此请尝试path="."(.表示“当前目录”)并指定name="./servlet/**"作为排除路径(即也以.为前缀) -
你试过
<exclude name="servlet/**/*.*"/>吗? (不否认它可能是一个错误,只是试图找到一种解决方法并知道从哪里开始寻找修复它) -
@geert3 我们在许多模块中使用
path="",因为某些java 文件不包含在任何子目录中。我相信这是做事的正确方式 (comments.gmane.org/gmane.org.google.gwt/8663)。
标签: java maven gwt gwt-maven-plugin gwt-2.7