Java Gradle资源文件冲突解决(log4j2.xml)

Java Gradle资源文件冲突解决(log4j2.xml),java,gradle,log4j2,Java,Gradle,Log4j2,我的主要Gradle项目A依赖于另一个Gradle项目B。A和B在中都有一个log4j2.xml文件 src/main/resources/log4j2.xml 当我运行/gradlew build时,gradle将把项目B中的log4j2.xml文件打包到最终的JAR文件中。有没有办法使用Gradle指定要包含的log4j2.xml文件 我正在使用jar插件 jar { zip64=true from { configurations.compile.col

我的主要Gradle项目A依赖于另一个Gradle项目B。A和B在中都有一个
log4j2.xml
文件

src/main/resources/log4j2.xml
当我运行
/gradlew build
时,gradle将把项目B中的
log4j2.xml
文件打包到最终的JAR文件中。有没有办法使用Gradle指定要包含的
log4j2.xml
文件

我正在使用jar插件

jar {
    zip64=true

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

您可以将项目A log4j2.xml的文件名更改为log4j2_final.xml,然后显式指定此配置文件

有关更多详细信息,请参阅Log4j2常见问题解答

如何指定配置文件位置?

默认情况下,Log4j在类路径中查找名为log4j2.xml(不是Log4j.xml)的配置文件

您还可以使用以下系统属性指定配置文件的完整路径:-Dlog4j.configurationFile=path/to/log4j2.xml

该属性也可以包含在名为log4j2.component.properties的类路径资源文件中


您的项目结构是什么样的?它是一个有两个子项目的根项目吗?还是将另一个项目用作库?你在使用shadow jar插件吗?是的,它是一个根目录,有多个子项目。我不是在用影子罐子,只是罐子。