Есть большой web-проект разработанный на java с использованием spring и spring mvc. Сборка проекта осуществляется с помощью maven, проект сделан в виде одного maven-модуля.
Возникла необходимость его нарезать на части (модули в терминологии maven), чтобы можно было делать несколько сборок, с разным набором модулей, для разных инсталляций проекта (web-функциональность также будет нарезана на модули).
На данный момент есть два варианта, как это сделать:
1) перейти на servlet api 3.0 и собирать модули в виде jar с web-fragment.xml, упаковывая туда jsp файлы и другие ресурсы.
2) генерировать в каждом модуле свой war файл, и потом с помощью maven-assembly-plugin, собирать большой war-файл из нескольких маленьких.
Скажите «за» и «против» каждого варианта. Есть ли какие-нибудь лучшие альтернативы?
Если уж речь зашла о модуляризации в Java, то уместно вспомнить об OSGi, поддерживаемой Spring.
Вот тут описывается поддержка веб-приложений. OSGi позволяет собирать ресурсы (классы, JSP, tld) из разных модулей или фрагментов. Описание, правда, выглядит несколько сложным. В реальности всё как-то проще.