2

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

提前致谢。

4

1 回答 1

1

如果您使用 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>
            ...
于 2013-02-12T11:06:17.720 回答