【分享】新版PathKit.getWebRootPath()避坑

一个jfinal做的老项目,今天运维了一下,加了几张表,然后顺手把jfinal版本升级到了当下最新的4.9.17。在使用工具自动生成model的时候发现新加的表加不过来,反复试了几次还是如此。正当一头雾水的时候,发现控制台打印出来的路径有点问题,很快明白了问题所在。新版的PathKit.getWebRootPath()更新了。

之前的时候获取的路径是到maven项目的根路径的,现在到了webapp路径下。如果是在生产环境里估计要整出幺蛾子了。

貌似之前就有人反馈过这个问题。

评论区

JFinal

2021-12-29 13:59

没认真看升级文档:
https://jfinal.com/doc/14-1

文档内容如下:
29、升级到 4.9.13
由于 PathKit.getWebRootPath() 方法已经被改进,在标准的 maven 项目中已经可以正确获取到 web 根目录,所以将该方法用于 model、base model 生成器的代码注意要改一下,可以将 PathKit.getWebRootPath() 改成下面方式获取项目根目录:
System.getProperty("user.dir")

PathKit.getWebRootPath() 对 web 项目运行远影响,但对你自己写的 main 方法启动的非 web 项目有影响

最后,线上 demo 的生成器 Generator.java 都改掉了

happyboy

2021-12-30 17:14

@JFinal 波总冤枉啊,不是没仔细看,是没看,┭┮﹏┭┮