我在Gradle中有以下多项目设置,用于构建使用几个库的多个Android应用程序:
假设我的根dir是/workspace
目录结构如下(不完整):
/workspace/ --> root dir for the gradle build
/workspace/settings.gradle
...
/workspace/myapp1/Android/ --> contains the 1st app (has a build.gradle)
/workspace/myapp2/Android/ --> contains the 2nd app (has a build.gradle)
...
/market_licensing/library/ ---> contains a lib (has a build.gradle)
/play_apk_expansion/downloader_library/ ---> another lib (has a build.gradle)工作空间中的settings.gradle /如下所示:
include ':market_licensing:library'
include ':play_apk_expansion:downloader_library'
include ':myapp1:Android'
include ':myapp2:Android'当我在一个应用程序目录中运行一个gradle构建时,它可以工作:例如,/workspace/myapp1/Android>gradle clean运行得很好。
但是,这也将评估myapp2的myapp2项目。
根据分级手册,这是预期的。在builds.html中,56.3. Execution rules for multi-project builds部分指出"Gradle总是评估多项目构建的每个项目,并创建所有现有的任务对象。“
我的问题是,这减缓了我的构建不必要。不必要的是,当我构建myapp1时,我并不关心myapp2。我希望库处于良好的状态,但我不关心myapp2。对于两个应用程序来说,这并不可怕,但想象一下有20个应用程序。我希望能够建立应用程序,我目前正在努力尽快。
是否有办法忽略其他子项目,即使是在评估阶段?或者是否有另一种方法来设置多个依赖于相同库但不相互依赖的项目?
发布于 2013-10-09 08:22:47
正如您所指出的,gradle中的默认行为是评估所有项目。有一些计划(以及已经开始的初步工作)来使这在将来变得更细粒度。现在,您可以签出孵化功能“按需配置”。也许这对你有帮助。详细信息请查看configuration
干杯,
勒内
https://stackoverflow.com/questions/19256713
复制相似问题