我想要一个在我的多模块 gradle 项目中共享的全局 logback xml 配置文件。
我的 logback.xml
文件位于 resources 下的 utilities
模块中。在 subprojects
块下根目录的 gradle 中,我添加了以下内容:
sourceSets {
main {
resources {
srcDirs += "utilities"
}
}
}
我将其解释为文件副本,本质上是为了将实用程序的资源内容放入每个子项目中。记录器没有意识到这一点。在所有子项目中共享此配置的最佳方式是什么?
答案 0 :(得分:0)
鉴于我不知道有什么方法可以用一些内置的魔法来做到这一点,我可能会将 logback.xml 放入一个 /static
内容目录中,在根 build.gradle
旁边,并在构建时让 gradle 将其复制到所有相关的 build/.../resources
目录。
如果您查看下图,它代表了 gradle 的构建生命周期阶段,您可以在 processResources
(或 processTestResources
)之后和 classes
之前插入任务来执行此操作:
来源:https://docs.gradle.org/current/userguide/java_plugin.html
您可能还需要通过一些内置的 gradle 引用动态地查找/使用 /build
目录,并将此任务添加到根 build.gradle
脚本中。
答案 1 :(得分:0)
对于那些感兴趣的人,我在我的 root.gradle 子项目块中做了以下操作。
if (name != "utilities") {
sourceSets {
data {
resources {
// Universal logback config for all sub-modules
srcDir "${project(':utilities').projectDir}/src/main/resources"
include "logback.xml"
}
}
main {
resources {
srcDirs += [data.resources]
}
}
}
}