我正在使用maven构建系统构建的gwt模块。一世 有一个具有以下项目结构的工作模块。
project-name / src / main / java / pkg1 / pkg2 / pkg3 / EntryPoingClass
项目名称/ src目录/人/资源/的pkg1 / pkg2的/ ModuleDef.gwt.xml
模块定义看起来像这样(我只放了这个 此处的项目特定设置...未指定正常继承 为了简洁起见)
...
< entry-point class ='pkg1.pkg2.pkg3.EntryPointClass'/>
< source path ='pkg3'/>
...
我不是在资源文件夹中拥有子包的忠实粉丝。 因此,我试图将其更改为类似以下内容
project-name / src / main / java / pkg1 / pkg2 / pkg3 / EntryPoingClass
project-name / src / man / resources / ModuleDef.gwt.xml
还将模块定义更改为
...
< entry-point class ='pkg1.pkg2.pkg3.EntryPointClass'/>
< source path ='pkg1.pkg2.pkg3'/> <! - 因为模块def不是 在任何包中,我在这里指定整个'客户'包 - >
...
此后,调用gwt编译失败并显示以下错误
无法找到类型“pkg1.pkg2.pkg3.EntryPointClass”
有人可以告诉我包裹之间是否有任何关系 EntryPointClass的结构和模块定义包 除了EntryPointClass应该是的事实之外的结构 在模块定义中指定的'client'包内(哪个 这里很满意)?
顺便说一句,我可以看到已编译的类可用于 调用gwt编译器时的类路径。
非常感谢这方面的任何帮助。
答案 0 :(得分:0)
GWT编译器需要客户端类的源,而不仅仅是编译的字节码。它在classpath吗?
在我的公司,我们总是设置pom.xml来复制源作为资源:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/client/**/*.java</include>
<include>**/*.gwt.xml</include>
</includes>
</resource>
</resources>
</build>
将**/client/**/*.java
更改为满足您需求的任何内容(可能pkg1/pkg2/pkg3/**/*.java
)。这样,客户端部分的源始终位于类路径中。