我正在开发一个使用 GWT 作为前端的企业应用程序。我有多个模块,并希望将每个单独的模块创建为单独的 war 文件,当部署在同一个 Web 服务器中时,它将像单个 Web 应用程序一样执行,因此用户无需更改 URL 即可访问每个模块。
希望问题很清楚,任何人都可以指导我。
我正在开发一个使用 GWT 作为前端的企业应用程序。我有多个模块,并希望将每个单独的模块创建为单独的 war 文件,当部署在同一个 Web 服务器中时,它将像单个 Web 应用程序一样执行,因此用户无需更改 URL 即可访问每个模块。
希望问题很清楚,任何人都可以指导我。
我在 Github 上创建了演示项目,其中描述了开发面向插件的系统的工作方法:https ://github.com/domax/gwt-dynamic-plugins
请随时向我询问有关此方法的更多信息-您的兴趣将激励我继续研究它;]。
最简单的解决方案是将多个模块编译为单独的 gwt 应用程序,然后将它们打包在同一个 war 中。
在您的部署战争中,您最终会得到 multiapp.war
战争的布局将是——
webapps
-> multiapp
--> module1gwtapp/
--> module2gwtapp/
--> module3gwtapp/
--> styles/images
--> styles/css
--> WEB-INF/web.xml
--> WEB-INF/lib
--> WEB-INF/classes
根据您的应用程序,您有不同的可能性。
如果您的每个应用程序都需要自己的服务器端服务,那么您必须独立部署每个 .war,然后您可以使用像 apache 这样的 Web 服务器作为前端,它使用重写和 http-proxy 规则链接所有应用程序,在在这种情况下,您可以将您的应用程序放在不同的服务器上,甚至可以配置集群和平衡。
如果您的应用程序只是客户端的东西,您可以解压缩所有的战争(使用 jar 或解压缩命令)并将所有静态文件放在任何地方:在 Web 服务器中,甚至在唯一的 .war 中。
您也可以使用 maven 将所有模块加入到最终的 .war 中。基本过程应该是使用 maven-dependency-plugin 的 unpack-dependencies 目标创建一个新模块以加入所有其他模块,然后您可以编译所有 gwt 模块以适当地配置 gwt-maven 插件。
就我使用 GWT 而言,这是不可能的(我可能错了)。一个 webApp 只能有一个 war 文件。
但是,您可以合并多个模块,以便它可以包含在单个模块中。同一个包甚至可以有多个入口点,但每个应用程序只能有一个战争。
如果您想要多个.war
文件,请将您的项目分成多个项目并单独构建它们,并希望它不会中断。