2013-07-26 99 views
3

我有一个包含两个模块的gradle项目。Gradle模块执行顺序

第一个模块(A)产生第二个模块(B)使用的档案。我已经定义了settings.gradle文件,使得A被B.

见过在结束时,有一个install的任务,被称为其将提供对于B存档,但是install任务将不会执行直到全部模块构建。

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

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

回答

2

我不管这里定义的settings.gradle文件,使得A被B.

单前,看到没有。

在结束时,有一个安装任务,被称为这将使得存档可对于B

来处理这个正确的方法是使可与B的输出通过项目依赖。在最简单的情况下,B的build.gradle将包含以下内容:

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

当我使用的编译文件,或设置生成命令-p它仍然会尝试寻找项目B.依赖

您的一个构建脚本很可能存在问题,即它在配置阶段中的工作应该在执行阶段中完成。

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

没有好的办法。 Gradle执行任务图,而不是项目列表。只要任务依赖性是正确的,前者将没有缺点,只有优点。通常情况下,Gradle可以自动计算任务依赖关系(特别是在项目之间)。

+0

如果模块只是一个分配项目,则依赖关系技巧不起作用,不幸的是 – spy