Я хочу иметь возможность развертывать изменения кода в Tomcat (почти мгновенно), пока я занимаюсь разработкой в Eclipse.
Пока что мой вывод из Eclipse помещает встроенные классы в WEB-INF/classes
папка моего веб-приложения.
У меня также есть перезагружаемый контекст с web.xml
в качестве отслеживаемого ресурса.Любое редактирование / сохранение этого файла делает перезагрузкой моего веб-приложения, что занимает чуть более одной секунды - гораздо быстрее, чем создание нового файла войны и его полное развертывание.
Однако, что я?Мне бы хотелось запустить повторное развертывание, когда я редактирую любой исходный файл.Так как файлы .class изменяются в Tomcat, похоже, мне просто нужно отслеживать любые изменения в папке WEB-INF/classes
и ее дочерних элементах.
Я читал, что могу добавить дополнительные отслеживаемые ресурсы в context.xml
Tomcat, но это не совсем то, что мне нужно - если только невозможно указать каталог, который будет отслеживаться (включая рекурсивный мониторингподпапки и файлы)?
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/someother.file</WatchedResource>
<Manager pathname=""/>
</Context>
По сути, мой вопрос заключается в том, могу ли я просмотреть всю папку классов (без явного включения каждого WatchedResource
), чтобы инициировать повторное развертывание в Tomcat?
Если нет, могу ли я настроить Eclipse для touch
файла web.xml, когда я сохраняю исходный файл в этом проекте?Я занимаюсь разработкой в системе Windows.: (
PS Мне не интересен продукт JRebel. Любой ответ должен быть free solution.
Update
В соответствии с документацией Tomcat , следует отслеживать папку классов, устанавливая контекст для перезагрузки:
Установите значение true, если вы хотите, чтобы Catalinaследите за изменениями в классах в / WEB-INF / classes / и / WEB-INF / lib и автоматически перезагружайте веб-приложение при обнаружении изменений.
Кажется, что изменения вносятся только в файл web.xml.вызвать перезагрузку. Это ошибка или мои настройки неверны?
Кроме того, я читал об установке атрибута docBase
для данного контекста:
docBase="webapps/someExample"
Это выглядит какбыть ближе к тому, что мне нужно, так как я мог бы быстро переиздать в Eclipse. Моя единственная проблема заключается в том, что мне требуется, чтобы несколько веб-приложений / сервлетов работали в Tomcat одновременно, на одном и том же порту и т. д.