Удаление специфических для окружающей среды свойств из войн, ушей и банок - PullRequest
2 голосов
/ 03 марта 2011

В моей компании мы используем Weblogic (в зависимости от установки где-либо между версиями 6.1 до 11g).

Прямо сейчас мы встраиваем переменные среды в наши уши, банки и войны. Это даже включает файл weblogic.xml, где у нас есть что-то вроде этого:

<working-dir>/opt/bea/wl61/server/domains/deploy/prod3/temp/work</working-dir>

Это означает, что мы должны восстановить одни и те же банки, уши и войны для каждого окружения. И, если есть изменения в окружающей среде, мы должны восстановить и повторно развернуть войны, уши и банки. Вы можете вообразить проблемы и проблемы, с которыми мы сталкиваемся в управлении сборкой и выпуском (это моя работа).

На моей последней должности мы использовали JBoss и каким-то образом смогли создать общие и развертываемые уши. Я бы попросил Хадсона создать ухо, которое разработчики могли бы использовать для их тестирования. Затем это же ухо можно передать нашей команде QA в их среде, в UAT, на стадии подготовки и в производство.

Мы могли бы совершить этот удивительный подвиг, потому что мы сконфигурировали JBoss для поиска файлов свойств ВНЕШНИЙ ВИД или самого уха. Был каталог config, который был родственником каталога deploy, который содержал любые необходимые файлы свойств. Можно ли настроить Weblogic на то же самое?

Нам нужен способ сделать это с минимальными изменениями кода. Я уже изучил источник, и мы не указываем имя каталога, когда мы указываем загрузку значений в файлах свойств. Следовательно, мы могли бы сделать это с какой-то идеей CLASSPATH.

Я понимаю, что эти свойства должны где-то существовать, но я бы предпочел, чтобы их можно было настроить в среде и, возможно, сделать, указав путь относительно каталога deploy. Я хочу использовать одни и те же файлы ear, jar и war независимо от того, в какой системе вы находитесь: настольный ПК с Windows, Linux, Mac или сервер Solaris.

Самым сложным будет наш встроенный путь weblogic.xml. Может ли этот путь быть относительно каталога развертывания, а не из корня системы?

Как я уже говорил ранее, я менеджер по сборке, поэтому для всех это моя головная боль, а не их проблема. Если развертывание не проходит успешно, Finger 'o Blame может указывать прямо на меня.

Чтобы это сделать, я должен найти решение, которое нам просто реализовать. Мы не можем переписать все и изменить все вокруг. В противном случае я не могу заставить другие команды сделать это. В конце концов, это моя проблема, а не их. Нам нужно что-то с минимальными изменениями кодирования (желательно без изменений) и минимальными изменениями в нашей настройке Weblogic. Я хочу кое-что, чтобы в версии 3.4 нашего программного обеспечения мы делали это в соответствии со старомодным окружением, но в версии 3.5 мы можем развертывать экологически нейтральным способом и делать это с минимальными изменениями в нашей среде развертывания.

1 Ответ

1 голос
/ 04 марта 2011

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

1) Измените CLASSPATH, чтобы использовать внешний каталог / файл свойств, который переопределяет все, что находится в файле ear. Это легко реализовать, но может выйти из-под контроля без надлежащих стандартов / управления.

2) Используйте планы развертывания для определения переменных среды. Однако планы развертывания не были представлены до тех пор, пока WebLogic 9.2.

3) Сверните все файлы, относящиеся к вашей среде, в свой собственный jar. Все среды будут указывать на один и тот же файл, но он будет создавать разное содержимое на основе вашего процесса сборки. Преимущества - Единый файл, который содержит все реквизиты, легко перемещается и т. Д. Недостатки - Невозможно изменить свойства на лету и вызвать перезагрузку из JVM.

Могут быть и другие параметры в зависимости от хранилища. ИМХО, все они работают более или менее одинаково - именно процесс и его применение предотвращают проблемы.

...