我正在一个多模块Gradle应用程序中工作,其中Project B将依赖于Project A,并且将其作为依赖项导入:
#not working
leaf.objects.create(tree_id = 2, branch_id = 2, leaf_id = 1, leaf_color = 'brown'.....)
项目A,我们称为compile project(":modules:lib-module")
,在这种情况下,包含用于配置Log4J2的XML文件,这些文件通常在相关项目中未经修改就使用。但是,在这种情况下,我需要从lib-module
中的文件中完全覆盖那些文件。
我知道我可以在设置Log4J2的模块的引导程序中编写代码来处理此问题,但是我正在寻找是否有一种方法可以在构建时使用Gradle覆盖这些文件而无需向应用程序本身添加其他代码。
由于此特定模块用作AWS Lambda函数,因此我们使用特殊的构建脚本:
lib-module
我希望可以更新task buildZip(type: Zip) {
from compileJava
from processResources
into('lib') {
from configurations.runtime
}
}
build.dependsOn buildZip
子任务,以将该模块的资源文件复制到依赖项的资源文件的位置,但这并没有达到我的预期。
我浏览了“ lib”文件夹中jar的内容,它们包含原始XML文件,最有可能是因为该模块具有自己的from processResources
文件。
是否有一种方法可以完全完全覆盖父项目的build.gradle
文件中的从属项目的资源文件?
注意:我故意不标记AWS-Lambda或Log4J2,因为它与该问题无关,但希望向读者提供上下文。这个问题仅是如何使用Gradle解决此问题。