Я хочу, чтобы иметь возможность разворачивать изменения кода в Tomcat (почти мгновенно), в то время как я развиваюсь в Eclipse.
До сих пор у меня есть выход из Eclipse, который помещает построенные классы в папку WEB-INF/classes
моего веб-приложения.
У меня также есть перезагружаемый контекст, с web.xml
в качестве наблюдаемого ресурса. Любое редактирование/сохранение этого файла перезагружает мое веб-приложение, занимая чуть более секунды - намного быстрее, чем создание нового военного файла и его полное развертывание.
Однако то, что я хотел бы сделать, это вызвать повторное развертывание при редактировании любого исходного файла. Поскольку файлы .class изменяются в Tomcat, кажется, мне просто нужно отслеживать любые изменения в папке WEB-INF/classes
и ее дочерних элементах.
Я читал, что я могу добавлять дополнительные просмотренные ресурсы в Tomcat context.xml
, но это, похоже, не совсем то, что мне нужно - если только не возможно указать каталог, который будет просматриваться (включая рекурсивно отслеживать подпапки и файлы)?
<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. Любой ответ должен быть бесплатным решением.
Обновление
Согласно документации Tomcat следует контролировать папку классов, устанавливая контекст для перезагрузки:
Установите значение true, если вы хотите, чтобы Catalina контролировать классы в /WEB -INF/classes/ и/WEB-INF/lib для изменений и автоматически перезагружать веб-страницы приложение, если обнаружено изменение.
Только изменения в web.xml, похоже, вызывают перезагрузку. Это ошибка или неправильная настройка?
Кроме того, я прочитал об установке атрибута docBase
для заданного контекста:
docBase="webapps/someExample"
Это похоже на то, что мне нужно, поскольку я мог бы быстро опубликовать в Eclipse. Моя единственная проблема заключается в том, что мне требуется несколько веб-приложений/сервлетов для работы в Tomcat одновременно, на одном и том же порту и т.д.