Я хочу иметь возможность разворачивать изменения кода в Tomcat (почти мгновенно), в то время как я развиваюсь в Eclipse.Развертывание нулевого оборота 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. Любой ответ должен быть решением бесплатно.
Update
Согласно Tomcat documentation, папка классов должна контролироваться путем установки контекста для перезагрузки:
значение ИСТИНА, если вы хотите, чтобы Catalina классов мониторов в/WEB-INF/классов/ и/WEB-INF/Lib для изменений, и автоматически загрузит приложение веб при обнаружении изменения.
Только изменения в web.xml, похоже, вызывают перезагрузку. Это ошибка или неправильная настройка?
Кроме того, я прочитал о настройке атрибута docBase
для данного контекста:
docBase="webapps/someExample"
Это, кажется, близка к тому, что мне нужно, как я мог бы затем опубликовать в Затмении быстро. Моя единственная проблема заключается в том, что мне требуется несколько веб-приложений/сервлетов, которые будут работать в Tomcat одновременно, на том же порту и т. Д.
Знаете ли вы, есть ли способ сделать это с помощью нескольких веб-приложений, запущенных в Tomcat? (Только один должен находиться на пути «выход сборки») – Mikaveli
Я не уверен, что следую за вами. У вас есть несколько независимых веб-проектов, которые вы хотите вести одинаково во время разработки? Или у вас есть несколько веб-проектов, которые используют одну и ту же разделяемую библиотеку, и вы хотите, чтобы общая библиотека была скомпилирована в папку классов веб-проектов? Если проекты независимы, вам нужен только контекстный файл для каждого проекта (имя файла .xml). Если проекты используют один и тот же общий код, и вы хотите, чтобы это было скомпилировано в папку веб-классов, я не уверен, как вы это сделаете. –
philwb
У меня есть несколько веб-приложений, которые должны запускаться в одном экземпляре Tomcat - мне не нужно то же самое поведение «hot deploy» из них. – Mikaveli