多模块m2eclipse / WTP项目可以将实用程序模块部署到WEB-INF / classes中吗?

时间:2010-08-04 12:53:38

标签: eclipse maven-2 m2eclipse eclipse-wtp multi-module

我们目前使用MyEclipse与其内置的Maven4MyEclipse集成及其内置的J2EE服务器支持,但希望转换为常规eclipse(Helios专门)以便能够在Windows上使用其64位安装。 (MyEclipse在Windows上还不支持64位。)

到目前为止,我已经有了一个使用m2eclipse的Helios eclipse工作原型,WTP插件将我们的大型Web应用程序部署到tomcat。部署有点处理器,但它可以工作,应用程序启动。

这里严重不同的是如何部署依赖项目。在我们的MyEclipse环境中,所有依赖项目都被部署到WEB-INF / classes文件夹中,因此在服务器运行时,对IDE中的java类的更改只会将受影响的文件复制到服务器的WEB-INF /类和热交换类到JVM和...繁荣 - 实时更改到服务器。非常适合调试。

然而,在我的helios转换中,所有依赖项目都获得JAR并放入WEB-INF / lib。这实际上看起来像我们真正的maven制造的生产图像看起来像,但开发环境因此严重不利,因为热交换功能似乎完全丢失了。在这里,如果我在依赖项目中更改java类,m2eclipse将重新打包JAR,看到部署的Web应用程序不同步,并重新发布整个应用程序。这不仅是一个问题,因为整个Web应用程序必须循环(鉴于它的大小和巨大的初始化时间,我们坦率地说它们做得不好),这也是eclipse在重新发布时的一个令人讨厌的延迟。 (对于我们的应用程序,这需要大约一两分钟。)

所以我的问题是:有没有办法让依赖项目内的更改热插拔到正在运行的JVM并替换已部署的文件,而没有这种令人讨厌的重新发布惩罚?我假设这意味着将这些类文件部署到WEB-INF / classes,但不确定(a)是否可行或(b)作为此解决方案的一部分真正必要。

其他人正在做些什么来解决这个问题?它可以解决吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

我认为您正在寻找Re: WTP Tomcat hot deploy with m2eclipse中描述的解决方案:

  

如果启用“服务模块”   没有发布“选项,那么a   特殊jar被添加到Tomcat中   允许Tomcat支持的服务器   在WTP中控制的“类路径”   网络应用程序。实用   项目没有组装到罐子里。   相反,Java输出文件夹   公用事业项目包括在内   网络的“类路径”   申请,有效地服务于   类文件直接。如果你禁用   上下文的自动加载,以及   在调试模式下运行,您所做的更改   类可以进行热代码替换   上下文不必重新加载。一世   相信这会实现你的目标   正在寻找。

这样做:

  • 转到服务器视图
  • 双击您的Tomcat服务器以打开服务器设置
  • 服务器选项中,选择不发布的服务模块选项
  • 发布中,选择从不自动发布选项