jfinal maven多模块项目sql管理怎么做

jfinal有sql模板管理,一直用的很舒服,目前遇到的情况是,我有父模块future,子模块future-org future-common,里面都有sql,如果我另外一个项目blog-admin blog-web引入这两个jar包那么sql模板的配置好像就只有运行包blog-web设置all.sql,然后再到all.sql里面引入future-org future-common里面的sql,这样做起来有点麻烦,还有什么更好的方法吗

评论区

JFinal

2019-12-06 23:08

sql 模板是从 class path 与 jar 中去找的,顺着这个思路,将不同子模块中的 sql 都让其处在当前运行模块的 class path 之中,或者 jar 包之中即可

参考这里的文件:
https://jfinal.com/doc/1-5

注意文档中第三小节的:《maven 多模块项目启动报错》。在启动模块中通过配置 undertow.resourcePath 来解决:
undertow.resourcePath=webapp, {修改为依赖的模块名}/src/main/webapp, src/main/webapp

当然,你的需求是要 class path 与 jar 包,所以,你的配置需要用到 "classpath: " 前缀,大致这样:
undertow.resourcePath=webapp, classpath:{修改为依赖的模块名}/src/main/webapp, ... 其它配置在此

undertow.resourcePath=webapp, /src/main/webapp, classpath:{修改为依赖的模块名}/src/main/resources

注意看 "classpath:" 这个配置中包含了你当前启动模块所依赖的其它模块的名称

JFinal

2019-12-06 23:09

补充,要解决这个问题也可以仅仅只配置 IDEA,让当前模块所依赖的其它模块中的 sql 模板文件目录配置到当前 class path 中来

久伴轻尘

2019-12-10 10:16

@JFinal 波总,您说的这个我大致清楚了,目前就是有一个问题我觉得不太优雅,我的本意是想用jfinal做一个多模块的基础项目,基础项目可能包含future-org(主要功能) future-model(基础项目的model) future-common(主要工具类) ,开发完基础项目后再进行实际项目的开发,以目前jfinal的实现来看,jfinal的几个配置都在jfinalConfig里面,如果我开发一个blog项目,那么我可能需要在blog-web(启动模块)中配置config,就需要对model进行绑定
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.addSqlTemplate("all.sql");//allsql里面要引入future-org的sql定义
_MappingKit.mapping(arp);//_MappingKit里面可能要把基础项目的一些属性也放过来,这样是不友好的
me.add(arp);
我希望的是基础项目 和 接下来需要开发的项目隔离