Инкрементное горячее развертывание на Tomcat с Maven и NetBeans
Я использую NetBeans 6.8, Tomcat 6 и Maven 2.2 и хочу видеть изменения в моем коде сразу в браузере (показывая http://localhost:8080) после сохранения файла.
Плагин tomcat-maven имеет следующую конфигурацию:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-beta-1</version>
</plugin>
Следуя за выходом, он должен выполнить развертывание на месте.
Что я могу сделать, чтобы сразу увидеть изменения в моем Java-коде в браузере?
Ответы
Ответ 1
Я потратил много времени, пытаясь получить эту работу. Наконец я просто использовал причал. Я сказал:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<reload>automatic</reload>
<scanIntervalSeconds>5</scanIntervalSeconds>
</configuration>
</plugin>
Возможно, все параметры неверны, но затем я создал пользовательскую цель 'jetty: run'
И я использую это. Я не могу использовать большую зеленую кнопку "Run", но развертывание приставок прекрасно работает, и оно горячо развертывает любые изменения в классах Java.
Ответ 2
Взгляните на JRebel. Он должен делать то, что вы хотите. Безболезненно.
Ответ 3
Посмотрите Горячее развертывание веб-приложения с Maven в NetBeans. Я также предлагаю проверить Повторное развертывание горячего кода Glassfish (на Maven), особенно сообщение о компиляции на Save, и попробовать GlassFish, вы могут получить лучшие результаты.
Ответ 4
Используйте цель tomcat:inplace
, чтобы вызывать ваш webapp из своих скомпилированных классов и источников.
В Windows могут возникнуть проблемы с блокировкой файлов. Существует несколько обходных решений, например атрибут antiJarLocking
contet, но по существу это сводится к тому, что ваш webapp не будет корректно закрыт, в конце концов выгрузите память виртуальных машин после нескольких перезагрузок. В моем случае я использовал Spring, а "правильное" исправление заключалось в том, чтобы добавить метод destroy на некоторый ключ beans, чтобы приложение было изящно выключено.
Maven Tomcat Plugin - tomcat: inplace