Eclipseでホットデプロイメントを設定する方法

Eclipseでホットデプロイを構成する方法

eclipse-luna

このチュートリアルでは、サーバーを再起動せずにホットデプロイ、ホットスワップ、またはホットコード置換をサポートするようにEclipseデバッガーを構成する方法を示します。これにより開発が大幅にスピードアップします。

環境:

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

  2. Eclipse Tomcatプラグイン

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でのホットデプロイの構成

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

2.1 Tomcatプラグインをダブルクリックします。publishingタブを参照し、Automatically publish when resources changeが選択されていることを確認します。 これは、JSP、XML、およびプロパティファイルなどの「ホットデプロイ」リソースをサポートするためのデフォルトオプションです。

eclipse-tomcat-hot-example1

eclipse-tomcat-hot-deploy-example2

2.2 Tomcatプラグインページで、Moduleビューをクリックし、Auto ReloadDisabledであることを確認します。 デフォルトは有効です。

eclipse-tomcat-hot-deploy-example3

Note
これは重要なステップです。自動リロードを無効に設定できませんでした。何かを変更するたびにTomcatサーバーが再起動されます。

2.3プロジェクトをDEBUGモードで開始します。 Hot DeployはDEBUGモードでのみサポートされています。

完了しました。

3. 制限

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

シミュレートするには、新しいメソッドを追加してみてください。次のポップアップ画面が表示され、JVMでコードの変更をホットスワップできません。

eclipse-hot-swap-failed