我目前正在将我们过度发展的项目分成连续的部分。目的是每个分离成为自己的Maven项目。将有一个父Maven项目负责确保编译所有正确的部分并共享全局属性。
考虑到这一点,我们的GWT代码将在其自己的项目中自包含,并将使用GWT Maven插件进行编译。另一个项目将负责创建WAR文件,可能使用Cargo插件,因为我们可能需要合并web.xml文件。
这就是问题,我如何从一个项目中获取已编译的GWT源到另一个项目创建的WAR文件?
进一步使问题复杂化的是,进一步项目将提供功能扩展,这些功能也将在他们自己的项目中,并且这些功能将编译GWT源,这些源将需要包含在WAR中。
有没有人有这方面的经验?有关在线资源或最佳实践的指示?我应该以不同的方式构建它吗?
感谢。
答案 0 :(得分:3)
我们有类似的布局(略超过20个Maven模块)。 webapp本身由3个项目组成:共享,客户端和服务器。
共享模块是一个简单的JAR,带有我们的RequestFactory接口和客户端与服务器之间共享的其他代码。
客户端模块有packaging = jar所以它在Eclipse中被视为Java项目,它在prepare-package阶段运行gwt-maven-plugin,我们使用程序集插件将JS代码打包到一个ZIP。该模块依赖于没有分类器和classifier = sources的共享。
服务器模块是webapp,它使用客户端模块的ZIP作为战争覆盖。
理想情况下,gwt-maven-plugin将提供一个特定于GWT的新包装,以及在战争中输出它的特定目标,类似于flexmojos;但上面几乎是我个人称之为“完美的项目布局”。
编辑:我正在使用类似的布局处理Maven原型:https://github.com/tbroyer/gwt-maven-archetypes