【问题标题】:What is the difference between "Redeploy" and "Restart Server" in IntelliJ?IntelliJ 中的“重新部署”和“重新启动服务器”有什么区别?
【发布时间】:2012-12-05 19:37:18
【问题描述】:

我正在使用 IntelliJ 和 Tomcat 6 来运行 Spring Java EE 应用程序。我没有部署已编译的战争,而是选择使用爆炸战争部署,因此我可以选择热交换一些类和 JSP。

但是,除了“更新类”和“更新类和资源”之外,IntelliJ 还允许用户在更新操作上“重新部署”和“重新启动服务器”。这两种选择有什么区别?

如果我在我的类中更改了我的方法签名,或者如果我在我的 Springconfig.xml 中进行了更改,我是否需要重新启动服务器,或者重新部署就足够了?我注意到我无法简单地热交换与它们关联的函数签名或注释已被修改的类。

【问题讨论】:

    标签: spring intellij-idea tomcat6 redeploy


    【解决方案1】:

    重新启动服务器完全按照它所说的进行,并重新启动 tomcat 服务器。您的战争将在服务器启动时重建和部署。如果您在热交换类时遇到问题,这很有用。

    Redeploy 将重新部署整个 .war(无需重新启动服务器),而不是尝试热交换更改的类和其他资源。

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

    在回答您的第二个问题时,重新部署就足够了。也就是说,它可能会导致内存泄漏,并且通常只比完全重启稍微快一点。

    【讨论】:

    • 公平地说,如果“重启服务器”完全按照它所说的那样做,它不会重建或重新部署,它只会重启。
    【解决方案2】:

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

    更新类和资源。所有更改的资源都将更新;更改的类将被重新编译。 在调试模式下,更新的类将被热交换。在运行模式下,IntelliJ IDEA 只会更新输出文件夹中更改的类。此类类是否会真正在运行的应用程序中重新加载,取决于所使用的运行时的功能。

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

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

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

    发件人:http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html

    【讨论】:

      猜你喜欢
      • 2013-08-23
      • 1970-01-01
      • 2015-12-19
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2015-07-31
      相关资源
      最近更新 更多