2013-08-29 2 views
1

Мне было интересно, есть ли способ поместить все необходимые .jars в отдельный .war/ear, чтобы, когда я внес незначительные изменения в свой код, я не нужно развернуть все библиотеки .jars на сервер?Развертывание: Разделение библиотечных банок из моих собственных классов

Поскольку загрузка 50 мб (в сервер Tomcat вне игры) каждый раз, когда я хочу протестировать изменение/во время разработки, не является отличным способом провести время.

Основная тема, которую я прочитал, SO заявила, что вы хотите, чтобы я содержал файл .war. В этом случае он делится только с 1 .war файлом. Не уверен, что это возможно с помощью какой-либо ссылки на библиотеку в дескрипторе развертывания.

+0

Вы пытались поместить эти банки в путь класса контейнера сервлетов (это может иметь негативные последствия для других веб-приложений, но, вероятно, решает проблему с загрузкой)? JBoss 7 предлагает решение для этого, используя концепцию загрузки модульного класса. – Beryllium

+0

Нет У меня нет, но я изучу этот вариант – mgamsjager

ответ

0

Согласно Java EE Spec, ваши .jars должны быть развернуты до WEB-INF/lib в вашем файле WAR. Я видел, как некоторые люди взломали загрузчик классов Tomcat, чтобы вытащить его из внешнего напрямую (особенно после того, как Tomcat 5+ удалил поддержку для CATALINA_HOME/shared/lib), но это имеет очевидные недостатки.

Я предлагаю рассмотреть возможность изменения процесса развертывания вместо изменения кода. Фактически вы можете выполнить развертывание «взорванной войны» до appBase (см. Tomcat docs) и переносить только файлы, которые были изменены.

Я работаю для Inedo, и я видел, что многие пользователи делают это с помощью BuildMaster. Рабочий процесс выглядит примерно так:

  1. Получить последнюю от $/MyApp
  2. Run Ant (build.xml)
  3. Распакуйте MyApp.war
  4. Создание сборки артефакта
  5. Остановить Tomcat Service
  6. Развернуть сборку артефакта для SERVER (/ path/appBase)
  7. Начать обслуживание Tomcat

На последнем этапе (Развертывание сборки артефакта) будут развернуты только те файлы, которые изменились, что значительно сократит время, затрачиваемое на развертывание артефакта 50 МБ.

Смежные вопросы