gpt4 book ai didi

Gradle:使一个项目依赖于多项目构建中另一个项目的输出

转载 作者:行者123 更新时间:2023-12-04 02:58:10 24 4
gpt4 key购买 nike

我在多项目构建中有两个项目。一个看起来像这样:

// project-a build.gradle

task generateJar(type: Exec) {
commandLine "command", "to", "generate", "jar"
}

task generateArtifact(type: Zip, dependsOn: generateJar) {
outputs.file("/path/to/generated/jar")
}

artifacts { archives generateArtifact }

而另一个只是像这样依赖它:
// project-b build.gradle

dependencies {
implementation project(':project-a')
}

我的期望是,当我在项目 b 上运行构建时,它将首先尝试从项目 a 运行 generateArtifact + generateJar,然后获取输出的 jar 以在项目 b 中使用,但是我只是在:project-b:compileJava。根据输出,它似乎没有尝试在 project-a 中运行任何任务,几乎就像它不承认存在依赖关系

最佳答案

看起来您正在混淆项目和任务依赖项。当您正确制作 project-b依赖 project-a ,这并不意味着您的自定义 generateJargenerateArtifact任务得到执行。您仍然需要在 project-a 中标记您的 JAR as an "outgoing" artifact or add it to the output of the main source set which you can depend on in the consuming project像这样:

sourceSets {
main {
output.file(generateArtifact.outputFile, builtBy: generateArtifact)
}
}

关于Gradle:使一个项目依赖于多项目构建中另一个项目的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com