Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何覆盖项目依赖项';在生成时使用gradle创建资源文件_Java_Gradle_Java 8_Multi Project_Gradle Dependencies - Fatal编程技术网

Java 如何覆盖项目依赖项';在生成时使用gradle创建资源文件

Java 如何覆盖项目依赖项';在生成时使用gradle创建资源文件,java,gradle,java-8,multi-project,gradle-dependencies,Java,Gradle,Java 8,Multi Project,Gradle Dependencies,我在一个多模块Gradle应用程序中工作,其中项目B将依赖于项目a,并作为依赖项导入: compile project(":modules:lib-module") 项目A,让我们调用lib module,在本例中包含用于配置Log4J2的XML文件,这些文件通常未经依赖项目修改而使用。但是,在这种情况下,我需要完全覆盖lib模块中的文件 我知道我可以在设置Log4J2的模块的引导过程中编写代码来处理这个问题,但是我想看看是否有一种方法可以在构建时使用Gradle覆盖这些文件,而不必向应用程序

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

compile project(":modules:lib-module")
项目A,让我们调用
lib module
,在本例中包含用于配置Log4J2的XML文件,这些文件通常未经依赖项目修改而使用。但是,在这种情况下,我需要完全覆盖
lib模块中的文件

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

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

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

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

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

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

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