2

我在这个问题上苦苦挣扎了很长一段时间,但没有在网上找到任何合适的解决方案,所以我想我会在这里寻求帮助。

我正在使用 Android Studio 构建一个 Android 库模块。我的库包含 3 种构建类型(“发布”、“调试”和“发布调试”)和 2 种风格(1 种风格维度):“通用”和“自定义”。我希望能够在每次构建变体运行结束时从此库中生成一个 jar。问题是所有关于“Jar”任务的示例都是指从“build/bundles/”复制生成的“classes.jar”文件,在我的例子中,“classes.jar”文件是在不同的路径中生成的时间取决于 buildVariant:对于“assembleGenericRelease”,“classes.jar”在“build/intermediates/bundles/generic/debug/”中生成,对于“assembleCustomDebug”在“build/intermediates/bundles/custom/debug”等下生成。

我的问题是:如何在构建过程中获取生成的“classes.jar”文件的位置,以便可以在自定义任务中复制和处理它?

目前我正在使用自定义任务来获取输入'taskRequests'(来自'gradle.getStartParameters.getTaskRequests.get(0).getArgs()')所以我可以解析并获取classes.jar文件的路径,但它很漂亮丑陋,我仍然相信必须有更好的方法来做到这一点。

最后,我想要实现的是构建这个 Android 库的 6 个变体,每个构建都会生成一个“.aar”文件和“.jar”文件,其中在“发布”buildType 变体中 - 最终的“.aar” & '.jar' 也由 DexGuard 处理以进行混淆处理。

对此主题的任何帮助将不胜感激。

4

0 回答 0