gpt4 book ai didi

Gradle多项目: ordering/dependencies

转载 作者:行者123 更新时间:2023-12-02 08:53:29 26 4
gpt4 key购买 nike

我有一个包含许多子项目的多项目构建。

include ':common'
project( ':common' ).projectDir = new File( rootDir, 'android-common/common' )

include ':setup'
project( ':setup' ).projectDir = new File( rootDir, 'android-setup/setup' )
...

我想在主项目级别添加它们之间的排序(或依赖关系)。在上面的示例中,我希望 common 始终在 setup 之前构建。它似乎我想做一些事情,比如获取对setup:compile(或任何命名的构建任务)的引用并添加额外的依赖项。类似的东西,

tasks[':setup'].dependsOn += tasks[':common:install']

显然这是行不通的。这可能吗?

编辑:更多细节。 :common 的结果是安装一个 Maven 工件,然后由 :setup 使用。因此,它们之间的依赖关系是软的。然而,在我们典型的开发周期中,我们仍然希望首先构建 :common

最佳答案

在我看来,您想使用项目依赖项

project(':setup') {
dependencies {
compile project(':common')
}
}

编辑:您似乎只想在父 build.gradle 中声明跨项目任务依赖项。

tasks.getByPath(":setup:compile").dependsOn(":common:install")

请注意,这将导致安装项目在此时被评估/配置。如果这由于某种原因导致问题,您可能需要使用评估监听器

project("setup").afterEvaluate { setup -> setup.compile.dependsOn ":common:install }

进一步注意,如果您想在此结构中独立构建安装项目,则必须使用 -u 命令行选项。

关于Gradle多项目: ordering/dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694760/

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