多个maven模块中的log4j.properties?

Kon*_*ner 6 java log4j maven

当我有一个由多个模块组成的maven应用程序并且每个模块包含一个log4j.properties文件时,它们会被某个文件合并或覆盖(如果是,哪一个)?

更新:根据您的建议,我现在已经在我的poms中排除了这样的其他属性:

<dependency>
[...]
<excludes><exclude>**/log4j.properties</exclude></excludes>
</dependency>
Run Code Online (Sandbox Code Playgroud)

PS:但是,Maven无法识别"排除"标记,"排除"仅适用于依赖项,而不适用于资源.

更新

刚刚在log4j中找到了一个多模块Maven项目,我可以将log4j.properties放在src/test/resources中,这样它们就不会被包含在可执行模块中了!

sak*_*ura 6

他们永远不会合并.通常,log4j.properties文件会被覆盖,您无法确切地知道哪一个.

它取决于按容器加载Jar文件的顺序.

因此,建议在应用程序的核心模块中为其他子模块安装一个log4j.properties,其中每个子堆都有多个appender.

但是在单独测试/使用子模块时会产生问题,因为它会在单独测试时停止记录.在我们的例子中,pom的源代码控制版本总是用于排除资源(在构建jar时将排除属性文件).但是在本地开发人员中,开发人员过去常常在POM中对该排除进行评论并且可以独立工作.