2017-02-03 16 views
2

В принципе, у меня есть базовый код, который является основной частью программы, и хотел бы иметь возможность добавлять отдельные библиотеки/модули/классы по индивидуальным требованиям для каждого 'клиент'. Когда я настрою программу, я выберу версию (base, customer1, customer2). Это веб-служба, работающая на сервере apacat7 apache, Java1.8.Java-программирование с одним базовым кодом и несколькими версиями

Возможно ли что-то подобное?

Редактирование: некоторые настройки носят как новое поле, так и новый метод или новый класс.

+0

* Когда я настроил программу, я выберу версию *. Вы хотите сделать этот выбор во время выполнения или во время развертывания? – CKing

+0

@CKing Развертывание было бы лучше всего, я бы хотел сделать так же просто, как просто выбрать версию. может быть, как установщик? – AlyxEsson

ответ

0

исправьте меня, если я ошибаюсь, но похоже, что вам нужен какой-то основной код для вашей системы, который вы можете добавить в функциональность, чтобы настроить его для конкретных клиентов.

Настройка может быть достигнута путем написания кода с использованием инфраструктуры OSGI, такой как apache felix или equinox (встроенный в eclipse). Эти структуры являются якобы плагинами, которые позволяют вам добавлять и удалять модули «на лету», но также позволяет писать код как отдельный набор, который можно комбинировать с вашей спецификацией. here - хороший учебник по использованию equinox.

Что касается автоматизации задачи заказчика, то стоит потратить время на то, чтобы посмотреть на что-то вроде Chef, которое используется для автоматической настройки серверного программного обеспечения, такого как apache или mysql, что позволит вам написать «рецепт», для каждой индивидуальной индивидуальной настройки клиентов. Все, что вам нужно было бы сделать после того, как были написаны различные плагины OSGI, - это написать сценарий для их объединения и запуска, после чего вы можете отправить заказчику настроенное программное обеспечение.

+0

Мне не нужно настраивать его на веб-сервисе. В настоящее время у меня есть основной код и дублирующий код с настройками для этого клиента. Поэтому, когда я вношу изменения в основной код, мне придется внести изменения и в каждый дубликат. что хорошо, когда у меня есть пара, но не тогда, когда у меня есть 50+, например. Я ищу, чтобы сделать это так, чтобы у меня мог быть только основной код, а настройки - как «плагины» или переопределяющие классы. – AlyxEsson

+0

Я изменил свое сообщение, чтобы лучше отразить ваши потребности, надеюсь, это поможет. –

+0

Шеф-повар, похоже, что-то ищет, но использует Ruby. Мой код в Java, я могу использовать его для «компиляции» моей группы кода вместе? – AlyxEsson