1 简介
在程序开发的时候,需要频繁的重启项目,随着项目复杂度增加,项目启动时间会越来越长。那么每次修改一点内容就重启项目,会极大影响开发效率。
EOS提供了热更新的手段,代码修改后无须重启,自动生效的手段。
2 配置热更新
在项目的sys-config.xml文件中,修改 Runtime -> Monitor -> Interval 的值为3 ,即每3秒检查一次程序是否更新了,如果检查到代码发生了更新,就热更新,让新代码生效。
3 Exclude标签
在 Monitor下还有一个 Exclude 标签,默认是 class 。
这个标签标识哪些文件的修改不检查。
注释部分解释了资源热更新配置的含义:
- 资源热更新配置 (Resource Hot Update Configuration):
- Interval : 指定扫描资源更新的间隔时间。如果设为负值(如
<0
),则表示不进行扫描。比如,如果设置为3
,则表示每 3 秒扫描一次资源更新。 - Exclude : 用于忽略特定文件或目录,防止它们被扫描更新。这个参数有三种配置方式:
- 忽略文件 :指定文件类型来忽略。例如,
*.ext
忽略所有以.ext
结尾的文件,多种类型用|
分隔。例如,*.class|*.properties
忽略.class
和.properties
文件。 - 忽略目录 :指定目录来忽略。例如,
classes
忽略名为classes
的目录,多目录用|
分隔,但不支持忽略子目录。 - 混合配置 :同时忽略文件和目录。例如,
*.class|classes
忽略.class
文件和classes
目录。
- 忽略文件 :指定文件类型来忽略。例如,
- Interval : 指定扫描资源更新的间隔时间。如果设为负值(如
配置部分(<group name="Monitor">
)
这个部分定义了实际的资源热更新配置:
- Interval : 这里配置的
Interval
为3
,意味着每 3 秒会扫描一次资源更新。 - Exclude : 这里的
Exclude
配置为空,意味着没有文件或目录被排除在扫描之外。
4 异常:错误的启动方式造成热更新不生效
有个需要注意的,项目启动方式一定要选择 debug ,否则是无法实现热更新的。
5 异常:白名单问题造成的热更新不生效
如果热更新不生效,还可以尝试这个方案。
在user-config.xml中,有一段是登录白名单的配置,在其中增加如下配置,debug方式重启项目,热更新应该生效了。
user-config.xml文件在