【问题标题】:Can a multi-module m2eclipse/WTP project get utility modules deployed into WEB-INF/classes?多模块 m2eclipse/WTP 项目能否将实用程序模块部署到 WEB-INF/类中?
【发布时间】:2011-03-25 06:07:18
【问题描述】:

我们目前使用带有内置 Maven4MyEclipse 集成和内置 J2EE 服务器支持的 MyEclipse,但希望转换为常规 Eclipse(特别是 Helios)以便能够在 Windows 上使用其 64 位安装。 (MyEclipse 在 Windows 上还不支持 64 位。)

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

这里的关键区别在于依赖项目的部署方式。在我们的 MyEclipse 环境中,所有依赖项目都部署到 WEB-INF/classes 文件夹中,因此当服务器运行时,在 IDE 中对 java 类的更改只会将受影响的文件复制到服务器的 WEB-INF/classes 并将类热交换到 JVM 中,然后...繁荣 - 对服务器进行实时更改。非常适合调试。

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

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

其他人正在做什么来解决这个问题?能解决吗?

提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    这样做:

    • 转到服务器视图
    • 双击您的 Tomcat 服务器以打开服务器设置
    • Server Options 中,选择 Serve modules without publishing 选项
    • 发布中,选择从不自动发布选项

    【讨论】:

    • 太棒了!这正是我一直在寻找的。 (我的所有搜索都不知何故错过了这一点,但在我的辩护中,日食论坛似乎从上周日到最近都处于离线状态,所以我在该区域的所有搜索结果都无法访问!)感谢您提供非常详细、准确和快速的回​​复.这效果很好!
    • @Scott:顺便说一句,如果您认为此答案有帮助,请随时接受(左侧投票计数器下方的绿色勾号)。
    • 完美解决方案。感谢您回答这个问题。
    • 希望这能奏效——似乎它应该做正确的事。不幸的是,<value>classpath*:META-INF/persistence.xml</value> 似乎导致了 FileNotFoundException:src\main\webapp\WEB-INF\classes\META-INF\persistence.xml (The system cannot find the path specified)。知道为什么会这样吗?这个 bean 和资源都在我试图启动的 webapp 的依赖模块中。
    • 你好愤怒,同样的问题,你解决了吗? - 问候
    猜你喜欢
    • 2012-12-17
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2010-10-29
    • 2011-05-02
    • 2011-07-21
    • 2010-10-26
    • 2010-10-12
    相关资源
    最近更新 更多