首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
undertow 每次上线都要重新打包,有没有更简便的方法
fa可儿
2020-01-16 16:34
1.现在每次上线都要把整个release 包导到linux 下 。./jifinal start
2.为什么生成的jar包才200K 应该怎么使用?
用的是demo4.8的
项目:
JFinal
1
评论区
JFinal
2020-01-16 19:39
如果你只改了 jar 代码,只需上传 innerVisitor-4.8.jar 覆盖掉服务器上的同名文件即可
如果你只改了模板文件,也只需要覆盖相应的文件即可
如果你希望每次部署不用重新打包,可以借助于 jenkins 这类持续集成工具,让打包部署自动化
回复
北流家园网
2020-01-16 20:38
@JFinal
meven项目挺麻烦的,修改一个java文件,都需要重新打jar包,上传、重启,有没有只更新一个class文件而不用重启?
回复
JFinal
2020-01-16 20:57
@北流家园网
JVM 不支持热加载,需要通过别的机制
回复
北流家园网
2020-01-16 22:48
@JFinal
有什么别的机制吗?推荐介绍下
回复
fa可儿
2020-01-17 10:51
@JFinal
目前就是只改了java代码,想只提交一个class文件就能够部署。innerVisitor-4.8.jar 都没丢上去。。
回复
JFinal
2020-01-17 16:00
@北流家园网
java 的 Instrumentation 机制 + 定制 ClassLoader, 用这两套东西将 JVM 类加载接管过来,然后对于动态改变的 .class 文件进行重加载
重加载修改类并不是最麻烦的,最麻烦的事情是重加载类如果在内存中有对象实例,还需要将这些实例对象进行更新替换
jfinal undertow 用了 ClassLoader 通过重启容器来实现热加载,绕开了很多麻烦事
jrebel 这个第三方是专门实现热加载的,它做得比较细粒度,所以工作量极大,是一个很大的项目,可以参考一下
回复
发送
我要反馈
热门反馈
扫码入社
如果你只改了模板文件,也只需要覆盖相应的文件即可
如果你希望每次部署不用重新打包,可以借助于 jenkins 这类持续集成工具,让打包部署自动化