我的设置是
我在IntelliJ中以一种部署耳朵的方式配置了应用程序。耳朵"目标"文件夹看起来像这样 目标/班/ 目标/显示/ appWeb版本,Snapshot.war / 目标/出现/ LIB / 目标/出现/ META-INF
在默认配置中,JRebel侦听classes /文件夹中的更改。 当我在Web模块中更改某些内容并构建它时,这些类仅在appWeb / target / classes /中更新,但不在appEar / target / appEar / appWeb-version-Snapshot.war /中更新。
如果我想更新这些课程,我必须选择" Build Artifacts"在构建项目后的IntelliJ中。
总而言之,我必须为热代码替换执行以下步骤:
这整个程序对我来说似乎太复杂了。有没有人知道如何正确设置IntelliJ / Maven / Glassfish / JEE / JRebel?我还没有找到包含所有工具的示例。我希望代码替换只有一个动作,而不是两个。
答案 0 :(得分:1)
项目工件设置中有“build on make”复选框,如果您正在寻找的话,它将始终在编译时重新创建工件。但是,JRebel应重新映射应用程序基于rebel.xml读取类文件和资源的位置,因此您可能只需重写rebel.xml以查找编译它们的类,而不是在构建工件后它们最终的位置。
答案 1 :(得分:0)
为什么每次都需要构建工件?
你的战争应该包含映射到/target/classes
文件夹中的类的rebel.xml。
当您对所述类进行更改时,您的服务器就会知道从这些类加载更改。
因此,您只需要构建项目,以便在rebel.xml
类路径指向/target/classes
时查看更改。