如何从另一个gradle构建脚本设置输出文件';GradleBuild任务中的任务?
我有一个gradle构建的项目。我有另一个项目B与gradle建设也。我想将项目B的jar包含到项目A的war中。我可以从项目A的构建脚本(见下文)调用项目B的构建脚本。如何从另一个gradle构建脚本设置输出文件';GradleBuild任务中的任务?,gradle,build,output,Gradle,Build,Output,我有一个gradle构建的项目。我有另一个项目B与gradle建设也。我想将项目B的jar包含到项目A的war中。我可以从项目A的构建脚本(见下文)调用项目B的构建脚本。 但是我不能将项目B的jar设置为任务buildB的输出文件 有没有办法将项目B的jar(任务jar的输出文件)设置为任务构建B的输出文件 task buildB(type: GradleBuild) { buildFile = "../BProject/build.gradle" tasks = ["clean
但是我不能将项目B的jar设置为任务
buildB
的输出文件
有没有办法将项目B的jar(任务jar的输出文件)设置为任务构建B的输出文件
task buildB(type: GradleBuild) {
buildFile = "../BProject/build.gradle"
tasks = ["clean", "jar"] // jar task produce xxx.jar as it's outputs.files
// HERE, any script to set xxx.jar as outputs.files of task buildB???
}
war {
from (buildB) { // can not get xxx.jar from buildB
into "WEB-INF/classes"
}
}
您可能需要配置一个项目并定义一个范围依赖项 因为完整的答案会很长,你可以找到一个演示,展示如何做到这一点 演示由两个项目组成。一个项目是为战争而构建的,并且依赖于另一个为战争而构建的项目。如果您构建a项目,b将自动构建并作为jar包含。这就是我所做的 /格雷德尔酒店
include 'AProject', 'BProject'
/a项目/build.gradle
task buildB(type: GradleBuild) {
buildFile = "../BProject/build.gradle"
tasks = ["clean", "jar"] // jar task produce xxx.jar as it's outputs.files
}
war {
dependsOn buildB
doFirst {
from (project(':BProject').tasks['jar']) {
into "WEB-INF/classes"
}
}
}
我想您需要设置一个多模块项目,并定义一个
编译类型项目的依赖项。谢谢您的回答,Opal。但buildA并不依赖于buildB的jar,它只将jar用作可下载的资源。因此,它不需要将项目B定义为编译依赖项。但您的答案和github源代码让我想到了多项目,所以我想出了一个解决方案。再次感谢!只有当BProject
是一个简单的单模块构建时,这才有效,否则您需要包含它的所有依赖项(即子项目)。