本文章适用场景和解决的问题:
开发在本地,而文件的编译和应用的运行在远程,节省本地开发资源,修改java文件、Spring配置文件等无需重启应用,提高效率。
前提:
在idea中要部署一个远程tomcat,可参考http://blog.lanyus.com/archives/197.html
正文:
step1:Server-side install and config JRebel
unzip jrebel-stable-nosetup.zip
JDK | Startup parameter |
Windows 64-bit JDK |
-agentpath:[c:\path\to]\lib\jrebel64.dll
|
Windows 32-bit JDK |
-agentpath:[c:\path\to]\lib\jrebel32.dll
|
Mac OS X 64-bit JDK |
-agentpath:[path/to]/lib/libjrebel64.dylib
|
Mac OS X 32-bit JDK |
-agentpath:[path/to]/lib/libjrebel32.dylib
|
Linux 64-bit JDK |
-agentpath:[path/to]/lib/libjrebel64.so
|
Linux 32-bit JDK |
-agentpath:[path/to]/lib/libjrebel32.so
|
To enable password-based security on the server, set the server password using the following command:
$ java -jar jrebel.jar -set-remote-password
Browe
Repositories
按钮, 查找需要的JRebel插件,点击Install即可。
安装完插件后重启IDEA即可看到JRebel的图标了,绿色的小火箭。
下一步就是**JRebel了,现在 JRebel 对个人非商业用途的用户永久免费,只需要分享一下使用统计。 访问:https://my.jrebel.com/ 使用 Facebook 或者 Twitter 帐号登录获取永久**码。 然后注册完,在如下页面就有***:
获取到***后复制下来,然后点击 Help –> JRebel –> Activation
输入**码即可:
step3:客户端(idea)配置JRebel
File –> setttings –> JRebel
–> Remote Servers ,
此处的Server URL就是JAVA_OPTS 参数中的Djava.rmi.server.hostname:Drebel.remoting_port;
此处的password 就是step1中第四小步设置的密码。
点击Test Connection ,查看结果。该处一定要连通,要不然所有的配置都白搭。
step4:服务端启动tomcat
和JRebel
cd $TOMCAT_HOME/bin
nohup ./catalina.sh run > log &
tail -f log
由于在Step1中修改了启动脚本catalina.sh,所以从日志中可以看到启动tomcat的同时启动了JRebel。
step5:客户端使用JRebel
IDEA打开 View > Tool Windows > JRebel 模块,勾选将要远程部署的项目后面的远程部署按钮后会在项目下生成rebel.xml,rebel-remote.xml两个配置文件,需要将这两个配置文件和项目一起打包部署到远程服务器上,远程服务器的项目启动后,当每次对本地代码做修改后,只需要重新本地编译项目即可将修改自动同步到远程服务器启动中的容器上,无需重新打包部署,无需重启应用,实现远程热部署。
参考资料:
http://blogxin.cn/2017/04/22/jrebel-remote-server/
JRebel官网帮助文档:http://manuals.zeroturnaround.com/jrebel/ide/index.html
Go to https://zeroturnaround.com/forums/ or mail to [email protected] for help.