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