我正在使用Struts 2 Web应用程序。它有很多模块和功能。我想根据客户要求启用或禁用(或删除)某些模块。但是在单个WAR文件部署下的Struts 2中,如何将其作为模块化?是否可以在部署时取出一些模块?
提前致谢。
答案 0 :(得分:1)
如果你使用Maven,那么你可以排除某些类/包被包含在生成的WAR中,你也可以有多个目标并以这种方式排除代码的不同子集。
此方法假定您将功能分为多个“struts.xml”操作定义文件,或者如果您使用带有注释的Struts2 convention插件等,那么您最终会得到一个非常好的解决方案。
因此,在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>
...