2016-05-06 2 views
1

Мне нужно сделать исполняемую War/Jar динамического веб-приложения. наша цель состоит в том, чтобы:Создайте исполняемую битву/банку для динамического проекта, основанного на Maven, который имеет приятные сервисы и функции Swing

  • Начинающие пользователи могут быстро развернуть в один клик способом без каких-либо предварительных условий, которые будут установлены на среде развертывания т.е. он/она не должна быть установка пути к классам переменных, java_home, автономной установки Tomcat и т.д., Каждый раз, когда папка WEB APP удаляет и развертывает новый .war в Tomcat и т. Д.

  • минимизировать время развертывания

  • в случае версии обновления приложения (очевидно Основные обновления в функциональности) мы поставим весь пакет, который будет только один полный исполняемый файл для развертывания. Я нашел пару ссылок для этого, я смог создать банку stanalone, но это не работало в обычном развертывании приложений. - http://tomcat.apache.org/maven-plugin-2.0/executable-war-jar.html - http://java-creed-examples.googlecode.com/svn/maven/How%20To%20Run%20Embedded%20Tomcat%20with%20Maven/

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

Я действительно буду признателен за быструю поддержку.

ответ

0

«исполняемая война», хотя это может показаться привлекательным для вас, это ужасающего идея:

  • я предполагаю, что, когда вы говорите «веб-приложение» вы имеете в виду что-то сервлет/JAX-RS на основе
  • , что означает, что для того, чтобы быть автономным «исполняемым», вы должны упаковывать различные библиотеки/реализации js-rs/someSpec (возможно, встроенный причал)
  • эти классы зависимостей будут придерживаться и «вмешиваться» в классы, предоставляемые контейнерами, которые должны использоваться при развертывании точно таких же Война на, скажем, tomcat (у вас будет две различные реализации класса Servlet на пути)
  • этот тип проблемы с псевдонимом класса относительно сложно определить и идентифицировать, а если вам особенно не повезло, то простые примеры hello world будут работать в то время как более сложные с неудачей в странных путях.

мое предложение к вам разделить ваш код вверх в 3-х модулей (им при условии, приложение JAX-RS) (мавена?):

  1. Апи-осущ, содержащий только @Resource классов, который имеет «предоставил» зависимость от всех спецификаций
  2. военный модуль, который упаковывает вверх по № 1 в военный файл, пригодный для развертывания на контейнере (скажем, tomcat)
  3. исполняемый модуль жировой банки, который упаковывает # 1 вместе с фактическим (например, причал и трикотаж) и имеет метод main(), который загружает встроенный причал, а также сценарий .bat/ .sh с чем-то вроде java -jar fat.jar для его запуска. посмотрите на maven shade plugin.

пользователей могут выбирать между жировой баночкой (для начинающих) и войн (для продвинутых пользователей)