Встроенные серверы приложений в Sonatype Nexus, Jenkins и Collabnet Subversion Edge - PullRequest
0 голосов
/ 06 февраля 2012

Мне нужно настроить среду разработки сборки, которая включает в себя следующее

  • Сонатип Нексус
  • Дженкинс
  • Collabnet Subversion

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

Я заметил, что каждый из них также предоставляет вариант файла войны, который можно просто перенести на существующий сервер приложений. Я думаю, что с «Collabnet Subversion Edge» у меня, вероятно, не будет никакой другой опции, так как она не поставляется с опцией установки войны. Два других могут быть загружены как военные файлы.

Каковы недостатки работы Nexus и Jenkins на одном сервере приложений. Есть ли недостатки? Один, который я сейчас исследую, это как его настроить. Кажется, что его можно настроить только после того, как файлы приложений были разархивированы / разархивированы сервером приложений.

Я также неохотно добавляю эти военные файлы в существующий экземпляр Glassfish, так как он используется для официальных испытаний. Я думаю, может быть, я должен установить Tomcat и использовать его для этих инструментов. Вы бы порекомендовали мне придерживаться встроенных серверов или просто использовать один сервер приложений и выделять больше памяти при необходимости? Какой-либо из этих инструментов лучше работает со своими встроенными серверами или это не имеет никакого значения?

Спасибо

Ответы [ 3 ]

3 голосов
/ 07 февраля 2012

Все 3 инструмента могут совместно использовать один экземпляр Glassfish (или аналогичный сервер приложений). Проблема в том, что вы становитесь ответственным за установку разумных параметров обработки памяти. Если одно приложение вызывает исключение Java OutOfMemory, это может повлиять на все приложения: - (

Если вы проверяете сценарии запуска для различных приложений, вы обнаружите, что каждое из них устанавливает различные значения по умолчанию для настроек кучи Java и permgen.

Я рекомендую держать каждое приложение изолированным и использовать встроенные серверы приложений. Дженкинс и Нексус оба довольно легкие (я не использую Collabnet).

2 голосов
/ 07 февраля 2012

Хадсон / Дженкинс, а также Нексус могут работать как файлы войны в Tomcat или Glassfish. Однако для них обоих предпочтительным и наиболее поддерживаемым вариантом является использование встроенного сервера приложений.

Nexus использует Jetty внутри. Hudson 3 (бета от Eclipse) тоже. Олд Хадсон и Дженкинс оба используют winstone внутри. Оба из них ОЧЕНЬ легкие контейнеры, и затраты на их параллельное использование должны быть незначительными.

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

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

1 голос
/ 07 февраля 2012

Я не использовал Дженкинса, но я видел, как нексус и хадсон запускались в одном экземпляре tomcat, работающем как отдельные войны.Для Nexus единственная разница между военной версией и автономной версией заключается в том, что автономная версия включает в себя причал, так что вы можете запустить его автономно ... но это всего лишь оболочка.Фактическая связь работает одинаково.

Я бы предположил, что то же самое верно и для Дженкинса.Так что нет смысла запускать 4 сервера, когда вы можете запустить 4 экземпляра на одном сервере.Должно работать нормально, поскольку все они будут иметь разные веб-контексты.

...