eclipse-luna、width = 319、height = 75

このチュートリアルでは、ホット・デプロイ、ホット・スワップまたはホット・コードをサポートするようにEclipseデバッガーを構成して、サーバーを再始動することなくこの速度の開発を行う方法を説明します。

環境:

  1. Eclipse 4.4(旧バージョンでもサポートされています)

  2. Eclipse Tomcat Plugin

1.ホットデプロイの例

Tomcatプラグインを再起動しなくてもコードを変更することができます。 Eclipse-Tomcatプラグインを使用して簡単なSpring MVC Webプロジェクトがデプロイされているとします。


1.1

オリジナルコード

TaskController.class

@Controller
public class TaskController {

    @RequestMapping(value = "/task", method = RequestMethod.GET)
    public ModelAndView index() {

        logger.debug("index()");

        ModelAndView model = new ModelAndView();
        model.setViewName("index");
        return model;

    }

…​.//output
DEBUG c.m.o.web.controller.TaskController – index()

__1.2__コードを変更して、別のものをログに記録する

TaskController.class

@Controller
public class TaskController {

@RequestMapping(value = "/task", method = RequestMethod.GET)
public ModelAndView index() {

logger.debug("index() - NEW - NO RESTART");

ModelAndView model = new ModelAndView();
model.setViewName("index");
return model;

}

再度アクセス:__http://localhost:8080/project/task__

....//output
DEBUG c.m.o.web.controller.TaskController - index() - NEW - NO RESTART

2. EclipseでのHot Deployの設定

Eclipseがホットデプロイをサポートするためにはいくつかの手順が必要です。


2.1

Tomcatプラグインをダブルクリックし、 `公開 ‘タブを参照し、`リソースが変更されたときに自動的に公開する `が選択されていることを確認します。

「ホットデプロイ」リソース(JSP、XML、およびプロパティファイルなど)をサポートするには、これがデフォルトのオプションである必要があります。


eclipse-tomcat-hot-example1、width = 565、height = 254


eclipse-tomcat-hot-deploy-example2、width = 604、height = 262


2.2

Tomcat Pluginページで、

Module`ビューをクリックし、

Auto Reload`が `Disabled`であることを確認してください。デフォルトは有効です。


eclipse-tomcat-hot-deploy-example3、width = 640、height = 379


2.3

プロジェクトを `DEBUG`モードで起動します。ホットデプロイはDEBUGモードでのみサポートされています。

完了しました。

3.制限

ホットデプロイメントは、メソッド実装でのみコードの変更をサポートしています。新しいクラスまたは新しいメソッドを追加する場合は、まだ再起動が必要です。

それをシミュレートするには、新しいメソッドを追加しようとすると、ポップアップ画面が表示され、コードの変更をJVMでホットスワップできないことを示します。


eclipse-hot-swap-failed、width = 501、height = 479

参考文献

  1. リンク://intellij/intellij-idea-auto-reload-a-web-application-hot-deploy/[Intellij

IDEA – Webアプリケーションの自動リロード(ホットデプロイ)]。

http://wiki.eclipse.org/FAQ


What

is

hot

code__replace%3F[FAQ

ホットコードを置き換える?]