Gradle模块构建顺序2

问题描述 投票:0回答:1

我有一个包含许多模块的Android Gradle项目(只有AAR,没有APP)。

因为Google不支持胖AAR,所以我需要自己重新打包(我尝试了多个胖AAR Gradle插件,但实际上都没有用,支持根本没有帮助我。)>]

因此,我必须自己编写重新包装文件(作为Groovy脚本,直接写到我的Gradle构建系统中)。

为此,我需要:

  • 构建许多AAR-这些是多个Gradle模块
  • 将所有这些AAR重新打包为一个大的AAR-这是一个特殊的Gradle模块(上面的所有AAR都设置为对此AAR的实现依赖项)
  • 然后使用DexGuard混淆所有内容(没有ProGuard / R8-它们太弱了)
  • 重新包装对我来说很好。但是...

如果执行此操作以确保干净发布版本:

./gradlew clean :MbiSdkLibrary:assembleRelease

首先清除所有内容,然后尝试构建我的FAT库。

问题是MbiSdkLibrary AAR构建与依赖项AAR的构建同时开始,而其他AAR的构建尚未完全完成。换句话说,Gradle在确定构建顺序时似乎忽略了依赖性。

随后,在其他(并行)构建中缺少的AAR上,MbiSdkLibrary(最终的胖AAR)的重新包装随机失败(这是一个竞赛)。

当然,我可以通过这种方式来实现构建(我测试过,它可以正常工作::

  • 首先使用单独的gradle命令构建依赖项AAR
  • 此后构建最终的胖AAR(无清理任务)
  • 但是那个解决方案对我来说听起来很愚蠢,我相信Gradle不能仅限于不能正确地做这样简单的事情...

我也用Google搜索了很多,并尝试了一些解决方法,例如这个:

对不起,由于某些原因,我不允许在那里进行交流,所以我被迫向SO提出另一个(非常相似)问题。

我有一个Android Gradle项目,其中包含许多模块(只有AAR,没有APP)。因为Google不支持胖AAR,所以我需要自己重新打包(我尝试了多个胖AAR Gradle插件,但...

android gradle aar
1个回答
0
投票

我能够使用GradleBuild类型的任务来解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.