Intellij idea 如何使用gradle和tomcat插件为IntelliJ启用JRebel

Intellij idea 如何使用gradle和tomcat插件为IntelliJ启用JRebel,intellij-idea,gradle,jrebel,Intellij Idea,Gradle,Jrebel,我有一个运行Gradle 4.3.1和com.bmuschko.tomcat插件的IntelliJ社区版。我的应用程序将在当前部署并正常工作,现在我想为此启用JRebel。因此,我的webapp文件夹上的更改将被热部署 在插件中有一个描述 编辑Gradle启动脚本并将以下行添加到 告诉Gradle使用JRebel代理。请务必设置 环境变量REBU HOME指向您的JRebel 安装目录 目前我还不清楚我需要在哪里改变这个?显然,当我用插件启动tomcat时,JRebel并没有激活 我所做的:

我有一个运行Gradle 4.3.1和com.bmuschko.tomcat插件的IntelliJ社区版。我的应用程序将在当前部署并正常工作,现在我想为此启用JRebel。因此,我的webapp文件夹上的更改将被热部署

在插件中有一个描述


编辑Gradle启动脚本并将以下行添加到 告诉Gradle使用JRebel代理。请务必设置 环境变量REBU HOME指向您的JRebel 安装目录

目前我还不清楚我需要在哪里改变这个?显然,当我用插件启动tomcat时,JRebel并没有激活

我所做的:

  • 在intellij中安装了jrebel插件
  • 使用ide启用jrebel功能
  • 在build/classes/main文件夹中手动添加了一个rebel.xml文件(如插件站点上所述)

我需要在哪里编辑gradle启动,以使jrebel对gradle构建处于活动状态?

有两种运行gradle的方法,它们将影响如何添加参数,有守护程序和没有守护程序

如果运行
gradle-tomcatRun--no-daemon
则必须通过
JAVA\u-OPTS
gradle\u-OPTS
环境变量添加JRebel的参数。因此,这意味着要么以
GRADLE_OPTS=-agentpath:/path/to/jrebel/lib/libjrebel64.So运行GRADLE-tomcatRun--no daemon
,要么在脚本中指定变量(如果正在使用gradlew)。如果直接从IntelliJ运行gradle任务,则可以在那里指定环境变量

如果使用守护进程运行,则
GRADLE\u OPTS
变量将为启动程序进程而不是守护进程设置JVM参数。这将意味着JRebel包含在错误的过程中,您的更改不会受到监控。为守护进程设置JVM参数的一种方法是将以下内容添加到
gradle.properties

org.gradle.jvmargs='-agentpath:/path/to/jrebel/lib/libjrebel64.so'
与守护进程一起运行将意味着JRebel横幅未显示,因此不要惊慌,因为更改仍将被监视


此外,自JRebel 7.0以来,文件夹结构也发生了更改,位于安装根目录中的
JRebel.jar
是新的核心,需要由
JRebel/lib
目录中包含的本机代理提供额外的引导。建议使用
agentpath
参数为您的OS/arch使用相应的本机代理,而不是像tomcat插件文档中那样使用
javaagent
参数。

有两种方法可以运行gradle,它们将影响如何添加参数,有守护进程和没有守护进程

如果运行
gradle-tomcatRun--no-daemon
则必须通过
JAVA\u-OPTS
gradle\u-OPTS
环境变量添加JRebel的参数。因此,这意味着要么以
GRADLE_OPTS=-agentpath:/path/to/jrebel/lib/libjrebel64.So运行GRADLE-tomcatRun--no daemon
,要么在脚本中指定变量(如果正在使用gradlew)。如果直接从IntelliJ运行gradle任务,则可以在那里指定环境变量

如果使用守护进程运行,则
GRADLE\u OPTS
变量将为启动程序进程而不是守护进程设置JVM参数。这将意味着JRebel包含在错误的过程中,您的更改不会受到监控。为守护进程设置JVM参数的一种方法是将以下内容添加到
gradle.properties

org.gradle.jvmargs='-agentpath:/path/to/jrebel/lib/libjrebel64.so'
与守护进程一起运行将意味着JRebel横幅未显示,因此不要惊慌,因为更改仍将被监视


此外,自JRebel 7.0以来,文件夹结构也发生了更改,位于安装根目录中的
JRebel.jar
是新的核心,需要由
JRebel/lib
目录中包含的本机代理提供额外的引导。建议使用
agentpath
参数为OS/arch使用相应的本机代理,而不是像tomcat插件文档中那样使用
javaagent
参数。

“编辑Gradle启动脚本”意味着在“gradlew”脚本中添加行。您还可以尝试将JRebel添加到tomcat实例()中,并将JRebel插件添加到构建脚本()。在这种情况下,您需要构建项目,然后将其部署到Tomcat上。“编辑Gradle启动脚本”意味着在“gradlew”脚本中添加行。您还可以尝试将JRebel添加到tomcat实例()中,并将JRebel插件添加到构建脚本()。在这种情况下,您需要构建项目,然后将其部署到Tomcat上。tomcat从JRebel输出开始,但是rebel.xml似乎是错误的,当我更改文件时没有热部署。但我想我需要另一个话题来讨论这个问题。谢谢你的解释。确保你编译了类文件,ctrl+F9来构建项目。好的,我运行了它。tomcat从JRebel输出开始,但是rebel.xml似乎是错误的,当我更改文件时没有热部署。但我想我需要另一个话题来讨论这个问题。感谢您的解释确保您编译了类文件ctrl+F9来构建项目。