使用Maven将GWT源代码整合到战争中的最佳实践
我目前正在将我们过于庞大的项目分解为几个连续的部分。其目的是每个分离都成为自己的Maven项目。将有一个父Maven项目,负责确保编译所有正确的部分并共享全局属性 考虑到这一点,我们的GWT代码将自包含在自己的项目中,并将使用GWTMaven插件进行编译。另一个项目将负责创建WAR文件,可能使用Cargo插件,因为我们可能需要合并web.xml文件 这里有一个问题,我如何将一个项目中编译的GWT源代码放入另一个项目将创建的WAR文件中 更复杂的是,更多的项目将提供功能扩展,这些扩展也将包含在他们自己的项目中,并且这些将编译GWT源代码,需要将其包含在WAR中 有人有过这样的经历吗?有在线资源或最佳实践的指南吗?我是否应该寻求不同的结构 谢谢。我们有一个类似的布局(略多于20个Maven模块)。webapp本身由3个项目组成:共享、客户端和服务器使用Maven将GWT源代码整合到战争中的最佳实践,gwt,maven-2,package,structure,war,Gwt,Maven 2,Package,Structure,War,我目前正在将我们过于庞大的项目分解为几个连续的部分。其目的是每个分离都成为自己的Maven项目。将有一个父Maven项目,负责确保编译所有正确的部分并共享全局属性 考虑到这一点,我们的GWT代码将自包含在自己的项目中,并将使用GWTMaven插件进行编译。另一个项目将负责创建WAR文件,可能使用Cargo插件,因为我们可能需要合并web.xml文件 这里有一个问题,我如何将一个项目中编译的GWT源代码放入另一个项目将创建的WAR文件中 更复杂的是,更多的项目将提供功能扩展,这些扩展也将包含在他们
编辑:我正在使用类似的布局处理Maven原型:谢谢你,Thomas,这听起来与我们的项目非常相似。在第一步中,我假设您不使用插件,只使用作为jar和源jar共享的包。第二步,你能详细说明一下汇编插件是什么吗?第三步,你使用maven war插件吗?在共享模块中没有什么特别的东西,你是对的。允许您将其他工件附加到模块。在服务器模块中,maven-war插件从客户机模块调用ZIP作为一个插件。注意,我们也可以在客户端模块中使用packaging=war,但是我们必须排除
WEB-INF/classes
,并且我们没有src/main/webapp
,所以我们选择packaging=jar。非常好,您已经回答了我的许多问题。现在将其全部付诸实践……在客户机项目中,我将对共享jar的依赖性指定为compile,并将对共享源jar的依赖性指定为所提供的。如果我现在在共享项目中做了任何更改,那么客户端项目中的gwt插件不会接受此更改并重新编译gwt源代码。我必须首先清理客户端项目,然后它将重新编译gwt源代码。这也是您的经验吗?如果您使用mvn gwt:run
,情况很可能就是这样。在Eclipse中,使用GPE,只需显式地将共享项目的src/main/java和src/main/resources文件夹添加到DevMode的运行时类路径。