Java EE: нужна лучшая система развертывания - PullRequest
0 голосов
/ 05 марта 2010

В настоящее время мы используем JDeveloper для создания наших производственных EAR. Одна из проблем заключается в том, что если разработчик не добавляет новые файлы в VCS, то этот разработчик является единственным, способным создавать EARS, и поэтому он также может использовать неверсионные файлы.

Какая будет хорошая система, которая разделяет это, чтобы EAR-файлы могли быть правильно созданы без зависимости от рабочей области локальных разработчиков (это также гарантировало бы, что они добавляют свои файлы в VCS, прежде чем позволят выполнить развертывание / проверку в).

Ответы [ 4 ]

3 голосов
/ 05 марта 2010

Одна из проблем заключается в том, что если разработчик не добавляет новые файлы в VCS, то этот разработчик является единственным, способным создавать EARS,

Если разработчик не использует VCS, это не единственная ваша проблема:

  • Вы не можете воспроизводить вещи в другой среде, вы привязаны к машине разработчика (но вам это известно). Что если он болен?
  • Отсутствие версий файлов означает, что у вас нет истории изменений и что вы не знаете, что положили в производство («Хм, что в этой версии? Подождите, давайте откроем EAR, чтобы проверить это».) .
  • И, наконец, что не менее важно, в случае аппаратного сбоя (например, сбой жесткого диска) вы можете попрощаться со всем, чего нет в VCS.

Итак, первый , который нужно исправить, - это ВСЕГДА файлов версий, даже если есть только один разработчик, так как работа в одиночку не спасет вас от упомянутых проблем. Об этих моментах следует помнить (разработчик должен знать о них, чтобы понять их важность).

Чтобы убедиться, что это произойдет, вам не следует полагаться на машину разработчика для создания EAR, а полагаться на «внешний» процесс, который будет ссылкой . Вы хотите избежать этого синдрома:

альтернативный текст http://img716.imageshack.us/img716/9901/worksonmymachinestarbur.png

Чтобы внедрить такой процесс, вам необходимо автоматизировать сборку (т. Е. Всю сборку можно запустить одной командой) и разорвать зависимость с помощью вашей IDE. Другими словами, не используйте IDE для построения EAR, а используйте такой инструмент, как Maven или Ant (которые не зависят от IDE). Это будет секунда , которую нужно исправить.

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

Учитывая ваш реальный набор инструментов (который далеко не идеален, сообщества не пользуются поддержкой инструментов, которые вы используете), я бы рекомендовал использовать Ant (или Maven, если у вас есть некоторые знания об этом) для сборки и Hudson для непрерывной интеграции (поскольку он чрезвычайно прост в установке и использовании и имеет плагин Dimensions ).

3 голосов
/ 05 марта 2010

Вот моя рекомендация:

  1. Получите лучший IDE - IntelliJ, Eclipse или NetBeans.Никто не использует JDeveloper
  2. Попросите разработчиков проверить центральную систему контроля версий, такую ​​как Subversion или Git.
  3. Настройте средство непрерывной интеграции с использованием Ant и Cruise Control или Hudson для автоматизации ваших сборок.
1 голос
/ 05 марта 2010

Что мы делаем, это используем cruisecontrol .Он делает две вещи, он позволяет нам делать непрерывные интеграционные сборки, так что у нас есть ночные сборки, а также облегченные сборки, которые собираются каждый раз, когда проверяется изменение.

Мы также используем его для более точного решения ваших проблем.вопрос.Когда мы хотим отправить, мы используем cruisecontrol, чтобы запустить сборку, которая помечена верной версией производственной сборки.Он будет извлекать код из нашей системы контроля версий (мы используем SVN) и буду опираться на него, поэтому он не будет зависеть от локальной среды разработчиков.

Одной вещью, которую вы, возможно, также захотите рассмотреть, является создание производственной ветви, из которой можно построить.Таким образом, производственные уши для конкретного выпуска всегда создаются из этой ветви.Таким образом, у вас будет даже больше контроля над тем, что входит в сборку.

0 голосов
/ 05 марта 2010

Вместо того, чтобы делать сборки из рабочих областей разработчика, настройте Maven и сделайте что-то вроде Hudson для запуска сборки Maven. Артификаты этого билда (ваше ухо) развернуты.

...