Gradle模块构建顺序

phk*_*ter 0 android module build gradle

我有一个摇篮根项目P有两个子项目P:fooP:bar。自然地,Gradle按照字母顺序构建它们:barfoo。但是foo当我gradle buildP根目录中说时,我需要首先构建。这是因为bar取决于foo发布到本地Maven存储库的AAR(Android库)工件。这两个barfoo是这样的Android库项目。

这看起来像是一个简单的问题,但我无法弄清楚。我读到有关内容evaluationDependsOn,因此在bar/build.gradle第一行中说:evaluationDependsOn "foo:"。las,这似乎没有任何作用。这个Gradle功能最终会被破坏吗?

使用compile project,我可以强制foo首先构建,但是那会直接将编译后的类添加到bar,我不需要。

所以我被卡住了。我可以重命名fooaaa_foo,所有问题都将消失,但我犹豫称其为解决方案。

phk*_*ter 6

好吧,让我自己回答这个问题。我想我找到了一个不错的解决方案。

Gradle中的项目依赖项通常通过来表示compile project,它不仅构建另一个项目,而且还将另一个项目的类添加到当前项目的类路径中。如果您只想确保在您之前构建了另一个项目,则可以使用任务依赖项

在我的Android环境中bar/build.gradle,我说

preBuild.dependsOn ":foo:build"
Run Code Online (Sandbox Code Playgroud)

一切都很好。现在foo总是以前建造的bar