Gradle多项目构建-将全球资源放在哪里?
我的Gradle多项目解决方案如下所示:Gradle多项目构建-将全球资源放在哪里?,gradle,log4j,log4j2,Gradle,Log4j,Log4j2,我的Gradle多项目解决方案如下所示: ---Root -----SubProject1 -----SubProject2 -----SubProject3 为了避免重复,我希望对所有子项目使用相同的log4j2记录器配置文件(“log4j2.xml”) 是否有可能将其放在某个地方,从而影响所有子项目?我更喜欢对每个子项目透明的解决方案 例如,在.NET解决方案中,我能够将log4net配置放入main app.config,并将其应用于解决方案中的所有项目。我想在Java中实现类似的功能…
---Root
-----SubProject1
-----SubProject2
-----SubProject3
为了避免重复,我希望对所有子项目使用相同的log4j2记录器配置文件(“log4j2.xml”)
是否有可能将其放在某个地方,从而影响所有子项目?我更喜欢对每个子项目透明的解决方案
例如,在.NET解决方案中,我能够将log4net配置放入main app.config,并将其应用于解决方案中的所有项目。我想在Java中实现类似的功能…您可以使用
子项目
块从根项目build.gradle
脚本配置子项目(请参阅)
例如,您可以配置sourceset
,以便将一些“共享资源”目录附加到子项目的sourceset.main.resources
属性,如下所示:
根项目的build.gradle
subprojects {
apply plugin: 'java'
main {
resources {
srcDirs += "../shared-resources"
}
}
}
在根项目中,您可以创建一个
共享资源
,它将包含所有共享配置文件,如log4j.xml
我了解依赖关系,但配置文件呢?我提到“log4j2.xml”,这里有一个类似的问题,建议的解决方案是:@M.Ricciuti:这很有用,但对子项目来说并不透明(建议的解决方案建议编辑每个子项目的build.gradle,这是我宁愿避免的)我根据这个建议的解决方案更新了我的答案:您可以直接在根项目构建中配置sourceset
,而无需更新子项目的构建脚本。