有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在一个多模块Gradle应用程序中工作,其中项目B将依赖于项目a,并作为依赖项导入:

compile project(":modules:lib-module")

项目A,让我们调用lib-module,在本例中包含用于配置Log4J2的XML文件,这些文件通常未经依赖项目修改就使用。然而,在这种情况下,我需要完全覆盖lib-module中的文件

我知道我可以在设置Log4J2的模块的引导过程中编写代码来处理这个问题,但是我想看看是否有一种方法可以在构建时使用Gradle覆盖这些文件,而无需向应用程序本身添加额外的代码

由于该特定模块用作AWS Lambda函数,我们使用了一个特殊的构建脚本:

task buildZip(type: Zip) {
    from compileJava
    from processResources
    into('lib') {
        from configurations.runtime
    }
}

build.dependsOn buildZip

我希望我可以更新from processResources子任务,将这个模块的资源文件复制到依赖项的资源文件的位置,但这并没有像我预期的那样起作用

我研究了“lib”文件夹中JAR的内容,它们包含原始XML文件,很可能是因为该模块有自己的build.gradle文件

有没有办法在父项目的build.gradle文件中完全覆盖依赖项目的资源文件

注意:我特意没有标记AWS Lambda或Log4J2,因为它与这个问题无关,但我想为读者提供上下文。这个问题只是如何与Gradle一起解决这个问题


共 (0) 个答案