был еще более сложный и специфичный подход, который долго объяснять, поэтому всего в двух словах:
точно так же написано базовое приложение, в котором куча jar'ников. В каждом jar'нике есть некий файл product.context, в котором хранится значение product=BASE.
В тех jar'никах, которые должны заменить существующие из базового проекта, эта переменная выставлялась в новое значение product=APP1.
Приложение написано на Spring'e + JSF. Для подгрузки подходящего JSF ресурса был написано ResourceResolver, который в зависимости от контекста приложения доставал либо базовый, либо кастомизированный ресурс. То же самое с бинами из Spring — был переопределён BeanLoader, который в зависимости от контекста доставал нужные бины, определённые либо в базовом, либо в кастомизированном приложении.
Этот вариант позволял делать кастомизацию с несколькими уровнями, например APP1 кастомизировал BASE, а APP2 кастомизировал уже APP1
Извините если непонятно написал:)
на одном из проектов применяли следующий подход.
Было написано базовое приложение состоящее из множества maven модулей. На выходе получался war'ник с кучей jar'ников внутри. В дальнейшем дописывались новые maven модули, которые либо замещали существующую функциональность, либо дополняли. Дальше, с помощью мавен-плагина Carge, war'ник базового проекта мёржился с war'ником конкретной надстройки, в результате получался war'ник, в котором было всё из общего приложения, плюс некоторые jar'ники были заменены новыми.
задача на самом деле элементарная, если её решать, а не гадать
есть же кнопка «воздержаться».
Есть же кнопка «Воздержаться», для тех кто хочет просто посмотреть результаты…
прячьте в черновики, чтобы в минуса не уйти
— Хм, надо бы подкинуть им еще пару неизвестных в уравнение Шрёдингера.
точно так же написано базовое приложение, в котором куча jar'ников. В каждом jar'нике есть некий файл product.context, в котором хранится значение product=BASE.
В тех jar'никах, которые должны заменить существующие из базового проекта, эта переменная выставлялась в новое значение product=APP1.
Приложение написано на Spring'e + JSF. Для подгрузки подходящего JSF ресурса был написано ResourceResolver, который в зависимости от контекста приложения доставал либо базовый, либо кастомизированный ресурс. То же самое с бинами из Spring — был переопределён BeanLoader, который в зависимости от контекста доставал нужные бины, определённые либо в базовом, либо в кастомизированном приложении.
Этот вариант позволял делать кастомизацию с несколькими уровнями, например APP1 кастомизировал BASE, а APP2 кастомизировал уже APP1
Извините если непонятно написал:)
Было написано базовое приложение состоящее из множества maven модулей. На выходе получался war'ник с кучей jar'ников внутри. В дальнейшем дописывались новые maven модули, которые либо замещали существующую функциональность, либо дополняли. Дальше, с помощью мавен-плагина Carge, war'ник базового проекта мёржился с war'ником конкретной надстройки, в результате получался war'ник, в котором было всё из общего приложения, плюс некоторые jar'ники были заменены новыми.