【问题标题】:Gradle Module Execution OrderGradle 模块执行顺序
【发布时间】:2013-07-27 06:12:20
【问题描述】:

我有一个包含两个模块的 gradle 项目。

第一个模块 (A) 生成第二个模块 (B) 使用的存档。我已经定义了settings.gradle 文件,以便在 B 之前看到 A。

在 A 的末尾,调用了一个 install 任务,这将使 B 可以使用存档,但是 install 任务在 所有 模块构建之前不会执行。

当我使用 A 的构建文件,或者设置构建命令 -p 时,它仍然会尝试为项目 B 查找依赖项。我不想这样做!

我该如何设置,以便模块 B 完全等待模块 A 完成?

【问题讨论】:

    标签: module dependencies gradle dependency-management


    【解决方案1】:

    我已经定义了 settings.gradle 文件,以便在 B 之前看到 A。

    这里的顺序无关紧要。

    在 A 的末尾,有一个安装任务被调用,它将使存档可用于 B

    处理此问题的正确方法是通过 项目依赖项 将 A 的输出提供给 B。在最简单的情况下,B 的build.gradle 将包含以下内容:

    dependencies {
        compile project(":A") // could be something other than 'compile'
    }
    

    当我使用 A 的构建文件,或者设置构建命令 -p 时,它仍然会尝试查找项目 B 的依赖项。

    您的某个构建脚本很可能存在问题,即它确实在配置阶段工作,而应该在执行阶段完成。 p>

    我该如何设置,以便模块 B 完全等待模块 A 完成?

    没有什么好办法。 Gradle 执行任务图,而不是项目列表。只要任务依赖正确,前者就没有缺点,只有优点。通常,Gradle 可以自动找出任务依赖关系(尤其是项目之间)。

    【讨论】:

    • 不幸的是,如果模块只是一个分发项目,则依赖技巧不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多