我正在使用 Struts 2 Web 应用程序。它有很多模块和功能。我想根据客户要求启用或禁用(或删除)某些模块。但是在单个 WAR 文件部署下的 Struts 2 中,我怎样才能使其成为模块化?是否可以在部署时取出一些模块?
提前致谢。
我正在使用 Struts 2 Web 应用程序。它有很多模块和功能。我想根据客户要求启用或禁用(或删除)某些模块。但是在单个 WAR 文件部署下的 Struts 2 中,我怎样才能使其成为模块化?是否可以在部署时取出一些模块?
提前致谢。
如果您使用 Maven,那么您可以将某些类/包排除在生成的 WAR 中,您还可以有多个目标并以这种方式排除不同的代码子集。
此方法假定您将功能分隔为多个“struts.xml”操作定义文件,或者如果您使用带有注释等的 Struts2 约定插件,那么您最终会得到一个非常好的解决方案。
因此,在 pom.xml 中,您必须首先排除所有模块:
<build>
<finalName>badNameUseBuildProfileInstead</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/struts-module1.xml</exclude>
<exclude>**/struts-module2.xml</exclude>
<exclude>**/struts-module3.xml</exclude>
</excludes>
</resource>
</resources>
...
然后您创建一个包含所需模块的构建配置文件:
...
<profiles>
<profile>
<id>web</id>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/struts-web.xml</include>
</includes>
</resource>
</resources>
...