使用Android Studio 2.1.2,Gradle 2.10和Android Gradle插件2.1.0,在一个项目和模块中构建一个库AAR。
我希望通过Android Studio模块自定义任务插入自己的行为。我在IDE中,在调试和发布变体之间翻转并执行构建/重建项目,观看Gradle控制台。
我的问题:
我理解为什么“按惯例配置”任务在运行罐装“调试”与“释放”任务之间切换,但我不明白为什么两个变体之间的固定任务序列在功能上是不同的。例如,在重建调试时,我看到执行了这些核心任务:
...
:LibraryModule:bundleDebug
:LibraryModule:compileDebugSources
:LibraryModule:assembleDebug
......
重建发布时,我看到执行了这些核心任务:
...
:LibraryModule:compileReleaseJavaWithJavac - 不是增量的(例如输出已更改,之前没有执行等)。
:LibraryModule:compileReleaseNdk UP-TO-DATE
:LibraryModule:compileReleaseSources
......
什么? bundleRelease和assembleRelease任务在哪里?我在发布版本中的哪个位置挂钩我的自定义任务(因为没有调用assembleRelease或bundleRelease)?
我可以使用Android Studio“编辑配置...”IDE功能来设置自定义构建配置,以便为AAR目标执行“制作项目(F7)”。如果是,怎么样?具体来说,我在“Gradle project:”字段中放置什么来定位特定模块的构建,以及我在“任务:”字段中确切地说,语义和语法是什么?
最后一个问题。完成重建库模块(生成.AAR文件)并将构建变量设置为debug后,我看到以下任务执行:
...
:LibraryModule:bundleDebug
:LibraryModule:compileDebugSources
:LibraryModule:assembleDebug
...
执行顺序似乎不对。我认为顺序是:
...
:LibraryModule:assembleDebug
:LibraryModule:compileDebugSources
:LibraryModule:bundleDebug
...
我是通过依赖链输出或什么来伪造的?