Java 如何覆盖项目依赖项';在生成时使用gradle创建资源文件
我在一个多模块Gradle应用程序中工作,其中项目B将依赖于项目a,并作为依赖项导入: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覆盖这些文件,而不必向应用程序
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一起解决这个问题