我有一个带有两个模块的 gradle 项目。
第一个模块 (A) 生成第二个模块 (B) 使用的存档。我已经定义了settings.gradle
文件,以便在 B 之前看到 A。
在 A 结束时,有一个install
任务被调用,它将使档案可用于 B,但是该任务在所有模块构建install
之前不会执行。
当我使用 A 的构建文件或设置构建命令-p
时,它仍然会尝试查找项目 B 的依赖项。我不想这样做!
我该如何设置,以便模块 B 将完全等待模块 A 完成?
我有一个带有两个模块的 gradle 项目。
第一个模块 (A) 生成第二个模块 (B) 使用的存档。我已经定义了settings.gradle
文件,以便在 B 之前看到 A。
在 A 结束时,有一个install
任务被调用,它将使档案可用于 B,但是该任务在所有模块构建install
之前不会执行。
当我使用 A 的构建文件或设置构建命令-p
时,它仍然会尝试查找项目 B 的依赖项。我不想这样做!
我该如何设置,以便模块 B 将完全等待模块 A 完成?
我已经定义了 settings.gradle 文件,以便在 B 之前看到 A。
顺序在这里并不重要。
在 A 结束时,有一个安装任务被调用,它将使档案可用于 B
处理这个问题的正确方法是通过项目依赖使 A 的输出对 B 可用。在最简单的情况下,Bbuild.gradle
将包含以下内容:
dependencies {
compile project(":A") // could be something other than 'compile'
}
当我使用 A 的构建文件,或设置构建命令 -p 时,它仍然会尝试查找项目 B 的依赖项。
您的某个构建脚本很可能存在问题,即它确实在配置阶段工作,而应该在执行阶段完成。
我该如何设置,以便模块 B 将完全等待模块 A 完成?
没有什么好办法。Gradle 执行任务图,而不是项目列表。只要任务依赖正确,前者就没有缺点,只有优点。通常,Gradle 可以自动找出任务依赖关系(尤其是项目之间)。