您的位置:首页 > 其它

idea安装jrebel插件实现远程热部署

2017-11-20 10:34 926 查看
本文章适用场景和解决的问题:

开发在本地,而文件的编译和应用的运行在远程,节省本地开发资源,修改java文件、Spring配置文件等无需重启应用,提高效率。

前提:

在idea中要部署一个远程tomcat,可参考http://blog.lanyus.com/archives/197.html

正文:



step1:Server-side install and config JRebel

1.Download and extract the JRebel distribution onto the remote server :

curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip

2.Open $TOMCAT_HOME/bin

3.Modify catalina.sh to change JAVA_OPTS parameter
My JAVA_OPTS parameter is:
JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1088
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.x.x.x -agentpath:/usr/local/fountain/3rdparty/jrebel/lib/libjrebel64.so -Drebel.remoting_plugin=true -Drebel.remoting_port=9000 -server
-Xms1024M -Xmx1024M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=256M -XX:MaxPermSize=1024M"

着重说明四个地方:
一是Dcom.sun.management.jmxremote.port
,该端口也即remote tomcat server 的JMX port ,默认值是1088.
二是Djava.rmi.server.hostname
,根据实际安装JRebel 的server调整。
三是agentpath,改参数有两部分构成,前半部分/usr/local/fountain/3rdparty/jrebel,后半部分/lib/libjrebel64.so。
其中前半部分是服务端JRebel的安装路径,后半部分根据JDK调整,见下表:

JDKStartup 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
四是Drebel.remoting_port,该端口在后面配置客户端时会用到。

4.服务端密码配置

To enable password-based security on the server, set the server password using the following command:

$ java -jar jrebel.jar -set-remote-password


step2:客户端(idea)安装注册Rebel

IDEA里面安装插件比较简单,File –> setttings –> Plugins,找到
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 dengjianfenggrow@gmail.com for help.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: