4.x版Jfinal打包后资源读取的问题

通过package.xml 把src/main/resources 全部 copy 到 config 目录下 ,这种做法一旦发布,会不会找不到原来放在resource目录下的资源文件?(不光是properties文件,还有一些自定义的资源)。发布时要做特殊处理吗?

顺便说一下,我这个是移植的老项目,原来的资源文件都是通过类似

class.getClassLoader().getResourceAsStream(FILE_NAME);

这样的语句读取的。

谢谢。


评论区

JFinal

2019-11-12 20:50

需要注意 config 目录下面的资源文件不要与 jar 内的重复了,否则会以 jar 包内的优先级为高,那么 config 下的就不起作用了

注意看一下 package.xml 中的 excludes 标签,这个可以过滤掉不希望被 copy 到 config 目录下的文件

再结合 pom.xml 中的 maven-jar-plugin 插件,配置 excludes 标签,这个可以过滤掉不希望被打到 jar 包中的文件

通过上面两处的 excludes 配置,就可以合理的调控配置文件是该出现在 jar 内还是该出现在 config 目录内

强烈建议只让配置文件出现在一个地方,否则只有 jar 包内的起作用

rirai

2019-11-14 15:20

感谢波总的亲自回答,谢谢!

JFinal

2019-11-17 15:44

@rirai 可以使用通配符,便于一次性过滤掉现在、未来可能出现的配置文件,便于在未来新增配置文件以后,不必改动 package.xml 和 pom.xml