Gradle 多项目构建——全局资源放哪?
Gradle multi-project build - where to put global resources?
我有 Gradle 多项目解决方案,如下所示:
---Root
-----SubProject1
-----SubProject2
-----SubProject3
为了避免重复,我想对所有子项目使用相同的 log4j2 记录器配置文件 ("log4j2.xml")。
是否可以将它放在某个地方以便影响所有子项目?我更喜欢对每个子项目透明的解决方案。
例如,在 .NET 解决方案中,我能够将 log4net 配置放入主 app.config,并将其应用于解决方案中的所有项目。我想在 Java...
中实现类似的目标
您可以使用 subprojects
块从根项目 build.gradle
脚本配置子项目(参见 https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:subprojects(groovy.lang.Closure) )
例如,你可以配置sourceSets
,以便将一些"shared resources"目录附加到子项目的sourceSets.main.resources
属性,如下:
根项目的build.gradle
subprojects {
apply plugin: 'java'
main {
resources {
srcDirs += "../shared-resources"
}
}
}
在您的根项目中,您可以创建一个 shared-resources
来包含所有共享配置文件,例如 log4j.xml
我有 Gradle 多项目解决方案,如下所示:
---Root
-----SubProject1
-----SubProject2
-----SubProject3
为了避免重复,我想对所有子项目使用相同的 log4j2 记录器配置文件 ("log4j2.xml")。
是否可以将它放在某个地方以便影响所有子项目?我更喜欢对每个子项目透明的解决方案。
例如,在 .NET 解决方案中,我能够将 log4net 配置放入主 app.config,并将其应用于解决方案中的所有项目。我想在 Java...
中实现类似的目标您可以使用 subprojects
块从根项目 build.gradle
脚本配置子项目(参见 https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:subprojects(groovy.lang.Closure) )
例如,你可以配置sourceSets
,以便将一些"shared resources"目录附加到子项目的sourceSets.main.resources
属性,如下:
根项目的build.gradle
subprojects {
apply plugin: 'java'
main {
resources {
srcDirs += "../shared-resources"
}
}
}
在您的根项目中,您可以创建一个 shared-resources
来包含所有共享配置文件,例如 log4j.xml