Найти и заменить файл JAR с помощью Maven - PullRequest
4 голосов
/ 23 марта 2011

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

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

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 28 марта 2011

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

2 голосов
/ 25 марта 2011

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

0 голосов
/ 28 марта 2011

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

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

0 голосов
/ 23 марта 2011

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

...