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