1

目前,我为每个更改创建一个新的 war 文件,但更改仅发生在几个类和 Spring applicationContext.xml 中。我只想更新一个包含这些类的 jar 文件,而不是不断地重新部署数百个未更改的文件。我可以很容易地创建 jar,但是我应该把它放在哪里,我必须告诉 Spring 在特定的 jar 中查找它的配置文件吗?

4

1 回答 1

1

如果不使用JRebel 或自定义 JVM 代理等额外工具,就不可能在 Tomcat 中热重新部署代码。

但是可以通过以下方式模块化您的应用程序:

1:将 JAR 放到$TOMCAT_HOME/lib. 永远不要这样做,这个解决方案只适用于简单的情况。

2: 调优context.xml把Loader放进去,如下图:

    <Context antiJARLocking="true" path="/">
        <Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="${catalina.base}/my-app-plugins/*.jar"/>
    </Context>

这将使您能够将 JAR 文件放入$TOMCAT_HOME/my-app-plugins其中,并将其添加到您的应用程序的类路径中。context.xml您应该放入src/main/webapp/META-INF文件夹(Maven 布局)。但是,仍然需要重新启动。

3:使用OSGi。可能是矫枉过正。

于 2013-08-27T18:21:15.817 回答