我有两个项目具有以下结构
项目1
com/MyCompany/MyApp/UI/MyAppUI.gwt.xml
com/MyCompany/MyApp/UI/client/MyApp.java(入口点类)
项目2
- com/MyCompany/MyApp/UI/MyAppUI.gwt.xml
第一个项目包含所有服务器和客户端代码并编译成jar,第二个项目只包含基本的html页面、css和图像并编译成war。
在升级之前,第二个项目的gwt.xml文件只是声明了第一个项目的入口点类,由于它们都有相同的模块名称,我认为gwt编译器将它们连接在一起,并将其全部编译到war文件中。
如果我保留项目结构,我会收到一个编译错误,说明它在给定的目录中找不到入口点(我认为它在第二个项目中寻找它),如果我更改它,war文件中不包含任何应该在其中的javascript编译代码。
我需要做的是让第二个项目将第一个项目的入口点声明为自己的入口点。有办法做到这一点吗?
提前感谢
PD:我没有被授权将所有内容合并到一个项目中,也没有执行任何此类重大更改,我只能将就着用我现有的内容。
使用相同的模块名称(具有相同的路径)肯定不是一个好主意——我想知道,为什么GWT2.3可以使用它?
因此,在第二个项目中,为模块选择一个不同的名称,<inherit>
是第一个项目中的模块(如果这是您想要做的)。
此外,如果第一个项目中有客户端内容,请确保在第一个项目的jar中包含源java文件。
解决方案是修改项目2的pom文件,以包括项目1 中的所有必要类
<directory>${basedir}/../MyCompany/src/main/java</directory>
<includes>
<include>**/ui/*.java</include>
<include>**/*.css</include>
<include>**/ui/*.gwt.xml</include>
<include>**/ui/**/*.java</include>
</includes>