看arthas文档,其中代码热更新功能很吸引人,用文档的demo项目热更新,没有任何问题。

但是,用公司项目的代码一试,mc编译时报错。

网上查了很多博客,有说在本地idea里编译成class文件再redefine的,但我在本地idea里直接右键compile的话也会报错,便不了了之。

最终,偶尔间在一个论坛看到说lombok的注解造成了同样的问题(@data,@getter@setter等等),随即检查自己的代码,原来@slf4j也是lombok注解。

于是在idea里右键refactor->delombok->log,@slf4j注解自动转换成经典的 logger log=….。将这个代码文件上传到服务器,再mc编译,果然成功。