Инкрементное горячее развертывание на 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. Он должен делать то, что вы хотите. Безболезненно.

Ответ 4

Используйте цель tomcat:inplace, чтобы вызывать ваш webapp из своих скомпилированных классов и источников.

В Windows могут возникнуть проблемы с блокировкой файлов. Существует несколько обходных решений, например атрибут antiJarLocking contet, но по существу это сводится к тому, что ваш webapp не будет корректно закрыт, в конце концов выгрузите память виртуальных машин после нескольких перезагрузок. В моем случае я использовал Spring, а "правильное" исправление заключалось в том, чтобы добавить метод destroy на некоторый ключ beans, чтобы приложение было изящно выключено.

Maven Tomcat Plugin - tomcat: inplace