Gradle多项目构建-将全球资源放在哪里?

时间:2018-12-18 14:06:14

标签: gradle log4j log4j2

我有Gradle多项目解决方案,如下所示:

---Root
-----SubProject1
-----SubProject2
-----SubProject3

为了避免重复,我想对所有子项目使用相同的log4j2记录器配置文件(“ log4j2.xml”)。

是否可以将其放置在某个地方,以便影响所有子项目?我更喜欢对每个子项目透明的解决方案。

例如,在.NET解决方案中,我能够将log4net配置放入主app.config中,并将其应用于解决方案中的所有项目。我想在Java中实现类似的目标...

1 个答案:

答案 0 :(得分:0)

您可以使用build.gradle块从根项目subprojects脚本中配置子项目(请参见https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:subprojects(groovy.lang.Closure)

例如,您可以配置sourceSets,以便将某些“共享资源”目录附加到子项目的sourceSets.main.resources属性中,如下所示:

根项目的build.gradle

subprojects {
    apply plugin: 'java'
    main {
        resources {
            srcDirs += "../shared-resources"
        }
    }
}

在您的根项目中,您可以创建一个shared-resources,其中将包含所有共享的配置文件,例如log4j.xml