Вопрос

Предположим, вы работаете над большим проектом, который выполняется на каком-то сервере приложений (скажем, Tomcat, но это может быть также Jboss, Jetty или что-то еще). Проект состоит из нескольких войн, при этом каждая война содержит много банок. Все это построено с использованием Maven, и на создание всего этого уходит много времени.

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

Однако было бы намного лучше, если бы это можно было делать автоматически с помощью maven. Скажем, при запуске «mvn install» плагин также перейдет в какое-то заранее определенное место (например, $ {tomcat} / webapps) и найдет все появления myjar.jar и заменит их новой версией (у нас есть несколько jar-файлов, помните? )

Кто-нибудь знает о таком плагине? Или может быть о каком-то другом инструменте, который может выполнить ту же задачу? Или есть лучшая идея, как это сделать?

Обновлено: Между прочим, если я не найду решение, я, вероятно, сам его внедрю. Пожалуйста, дайте мне знать, если вы заинтересованы. Мне понадобятся бета-тестеры :)

Обновлено: я создал плагин сам. См. http://code.google.com/p/replace-file-plugin/ Любые отзывы приветствуются.

Это было полезно?

Решение 2

Что ж, все функции, о которых я просил в этом вопросе, я реализовал сам.См. http://code.google.com/p/replace-file-plugin/ Буду признателен за любые отзывы.

Другие советы

Ознакомьтесь с JRebel .Это круто, значительно сокращает время разработки / развертывания.Существует 30-дневная бесплатная пробная версия, так что попробуйте ее бесплатно.Я приобрел собственную лицензию, моей компании потребовалось несколько недель, чтобы одобрить ее покупку, и я не мог дождаться.

Серьезный мужик, это круто.Прочтите об этом, он может делать то, что вы хотите.

Если вы можете написать свой сценарий как сборку Ant, вы можете использовать Maven Antrunплагин , чтобы встроить сборку Ant в жизненный цикл сборки.

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

Вы можете попробовать этот вариант: создать модуль окончательной сборки, который работает быстро и объединяет все зависимые модули в один war-файл.Затем, если вы изначально выполняете установку пакета mvn clean для всей сборки, вам придется установить пакет mvn clean для установки измененного зависимого модуля и повторно запустить модуль окончательной сборки, чтобы быстро получить доступ к обновленной войне.Это довольно схема сборки с сохранением состояния (и, следовательно, подвержена ошибкам), но после некоторого ознакомления с этим подходом к распространению изменений вы, вероятно, подумаете, что это самая простая идея, которая может работать и работать быстрее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top