【发布时间】:2016-12-08 19:03:23
【问题描述】:
是否有一种标准方法可以在 gradle 项目布局中的所有子项目之间共享日志配置(例如 log4j 或 logback)?
我现在所做的是将logback.xml(或log4j.properties)的副本放在每个子项目的src/main/resources 中,但这会导致此配置文件出现大量不必要的重复
【问题讨论】:
标签: gradle log4j logback configuration-files
是否有一种标准方法可以在 gradle 项目布局中的所有子项目之间共享日志配置(例如 log4j 或 logback)?
我现在所做的是将logback.xml(或log4j.properties)的副本放在每个子项目的src/main/resources 中,但这会导致此配置文件出现大量不必要的重复
【问题讨论】:
标签: gradle log4j logback configuration-files
这可以通过使用 gradle 中的多个工作集轻松克服。
在项目的根目录中添加一个新文件夹,例如“shared-resources”将我们的配置放入其中,然后将以下行添加到子项目的build.gradle
sourceSets {
main {
resources {
srcDirs = ["src/main/resource", "../shared-resources"]
}
}
}
这应该将这两个文件添加到您的 jar 文件中。
一个例子可以在github找到
【讨论】:
sourceSets 块可以添加到根项目中build.gradle 的subprojects 部分。
在其src/main/resources 目录中创建一个包含您的Log4j2 配置的共享util 模块。
然后将util模块导入其他模块。
dependencies {
compile project(":util");
}
我还将 util 模块用于可重用的 Java 代码,而不仅仅是用于 Log4j2 的一次性配置。
【讨论】: