做个记录:
gradle项目模块:base,common,front;
front为war,base,common为jar,front依赖base和common。
在打成war包后,base,common会打包成jar包放在front的WEB-INF下的lib中。
在base中有log4j.properties,需要在front的web.xml中进行加载。
web.xml中用classpath是无法加载jar包中的配置文件的。
<!--配置log4j-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
需要采用以下方式
<!--配置log4j-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/lib/com.maxrocky-base-1.0-SNAPSHOT.jar</param-value>
</context-param>
会报一个encoding的异常,不影响项目使用,百度下原因是路径或者文件中包含了/,改成\\就可以了,也可能是文件编码有问题。但是我测试了还是不行。