如何在构建时使用Gradle覆盖项目依赖项的资源文件

时间:2019-04-01 20:12:23

标签: java gradle java-8 multi-project gradle-dependencies

我正在一个多模块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解决此问题。

0 个答案:

没有答案