在IntelliJ中,“重新部署”和“重启服务器”的区别是什么?

19

我正在使用IntelliJ和Tomcat 6运行一个Spring Java EE应用程序。与其部署已编译的war文件,我选择使用已解压的war文件部署,这样我可以热交换一些类和JSP页面。

然而,除了“更新类”和“更新类和资源”之外,IntelliJ还允许用户在更新操作时“重新部署”和“重启服务器”。这两个选项有什么区别?

如果我更改了我的类中的方法签名,或者更改了我的Springconfig.xml中的内容,我需要重启服务器,还是重新部署就足够了?我注意到,如果类的函数签名或与其相关联的注释已被修改,我无法简单地热交换这些类。

2个回答

20

重启服务器就是按照字面意思,重新启动Tomcat服务器。您的war包将在服务器启动时重新构建和部署。如果您无法热交换类文件,这是非常有用的。

重新部署会重新部署整个.war文件(而不是尝试热交换更改后的类文件和其他资源),但不会重新启动服务器。

另请参阅:http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

对于您的第二个问题,重新部署应该足够了。尽管如此,它可能会导致内存泄漏,并且通常只比完全重启稍快一些。


3
公平地说,如果“重新启动服务器”确切地做了它所说的,它不会重建或重新部署,它只会重新启动。 - Brandon Essler

5

更新资源。所有已更改的资源(即除类之外的所有应用程序组件)将被更新。

更新类和资源。所有已更改的资源将被更新;已更改的类将被重新编译。 在调试模式下,更新后的类将进行热交换。在运行模式下,IntelliJ IDEA将仅在输出文件夹中更新已更改的类。这些类是否实际在运行的应用程序中重新加载取决于所使用的运行时功能。

重新部署。应用程序将被更新并重新部署。

重启服务器。服务器将被重启。更新版本的应用程序将在服务器启动时部署。 对于打包的构件,可用的选项为:

热交换类。更改的类将在运行时重新编译和重新加载。请注意,此选项仅在调试模式下有效。 重新部署。整个应用程序将被重建和重新部署。 重启服务器。服务器将被重启。应用程序将在服务器启动时进行重建和部署。

来源:http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接