Модульное веб-приложение Struts 2

Я использую веб-приложение Struts 2. Он имеет множество модулей и функций. Я хочу включить или отключить (или удалить) некоторые модули в зависимости от требований заказчика. Но как в Struts 2 при развертывании одного файла WAR сделать его модульным? Можно ли вынуть некоторые модули во время развертывания??

Заранее спасибо.


person kannan    schedule 06.03.2012    source источник
comment
Можете ли вы описать, что вы подразумеваете под модулями? вы можете создавать модули в виде банок и использовать их в соответствии с вашими требованиями.   -  person Umesh Awasthi    schedule 06.03.2012
comment
Если вы имеете в виду модули, как в пространстве имен struts2, вы, вероятно, хотите получить сопоставление действий и удалить тот, который вам не нужен? Это идея, но если вы удалите сопоставление и если есть вызов сопоставления пространства имен, не вызовет ли это исключение?   -  person Jasonw    schedule 06.03.2012


Ответы (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>
            ...
person Reigo    schedule 12.02.2013