Struts 2模块化Web应用程序

时间:2012-03-06 04:06:36

标签: web-applications struts2 modularity modular-design

我正在使用Struts 2 Web应用程序。它有很多模块和功能。我想根据客户要求启用或禁用(或删除)某些模块。但是在单个WAR文件部署下的Struts 2中,如何将其作为模块化?是否可以在部署时取出一些模块?

提前致谢。

1 个答案:

答案 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>
            ...