質問: ### デプロイの仕組みについて知りたい ・ **デプロイについて** javaでWebアプリを開発していますが、 デプロイとは何なのか、何のために必要で、何をするのかを明確に理解できていないので、その点を解消したいです。 「ホットデプロイ」は、ソースを修正しても自動的にデプロイされ、サーバを再起動しなくてもブラウザで即時動作確認できて 「コールドデプロイ」は、自動的にデプロイされないため、随時サーバの再起動が必要という曖昧な認識です。 --- ・ **Eclipseの「完全公開」と「差分公開」** ソースを修正すると ▽WildFly[停止,同期済み] ・プロジェクト[同期済み] から ▽WildFly[停止,再公開] ・プロジェクト[再公開] に変わり、再公開の状態だと修正したソースがブラウザで反映されないのですが これは修正したソースがデプロイされていないからでしょうか。 普段はプロジェクトを右クリックで「完全公開」をして同期済みにするのですが、この辺の仕組みも知りたいです。 --- ・**デプロイするとwarファイルが作成される** これはどういう仕組みなのかさっぱりです。 --- 以上3点について参考資料の共有やご教示お願いいたします。
回答: デプロイは、TomcatやWildFlyなどのコンテナに warアプリケーションを 搭載することです。 Eclipseの「サーバ」、いわゆるWTPをお使いのようですので、その説明を加えると、 Eclipseにて修正を加えたソースコードが自動的にコンテナへ反映される現象は、プロジェクトの自動ビルドによるものです。 サーバに表示される「再公開」は、コンパイルしたJavaコードや修正したWebリソースが存在することを意味し、これはプロジェクトのビルドは完了したが、コンテナへは反映していない状態です。 「同期済み」はプロジェクトで上記の「再公開」状態がコンテナに反映された状態です。 従来コンテナはアプリケーションの公開は一度しか行われず、搭載されたwarファイルはコンテナの起動時にしか読み込みません。これだと開発中では修正があるたびにコンテナの再起動を手動で行わければならず手間がかかるので、JavaクラスやWebリソースに変更があったことを自動検知し、コンテナは再起動せず修正のあったWebアプリケーションだけを再起動する仕組みがホットデプロイです。