Hum*_*ent 50 android android-gradle-plugin
如果我没看错的gradle assemble不运行gradle assembleDebug和gradle assembleRelease,但我相信gradle build也不会是相同的,所以是什么他们两个之间有什么不同?
Dav*_*jak 69
Assemble会构建你的工件,build会用额外的检查来组装你的工件.
build取决于assemble,所以build是一种超集assemble
您可以查看将使用该--dry-run标志执行的任务.例如
gradlew build --dry-run
Run Code Online (Sandbox Code Playgroud)
你会看到,除了assemble还lint与test将被执行.
Col*_*ett 14
关于是否build应该依赖于存在矛盾的信息assemble。
一方面,Understanding Gradle: the Build Lifecycle显示了任务依赖关系图,从哪里开始build,从哪里assemble独立:

相比之下,Java 插件的Gradle 用户指南显示build依赖于assemble,至少对于 Java 项目:
这与“了解 Gradle”中的图表相矛盾。那么也许 Android 插件实现的构建/组装任务与 Java 插件不同?或者,这种行为在某些版本的 Gradle 中发生了变化。
来自gradle tasks --all:
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
Run Code Online (Sandbox Code Playgroud)
build是有效的assemble+ check(并且check是test+任何皮棉任务)。
小智 5
的确,根据gradle tasks它看起来build是的超集assemble,包括测试。但是(!)从我的短暂经验来看,事实并非如此。
因此,每次运行干净后,我都使用带有--scan标志的gradle包装器在命令行中运行了这2条命令。这是比较:
assembleDebug我得到了所有想要的构建文件- *.apk和*.aar文件。buildDebug我没有任何这些文件。assembleDebug -109个任务buildDebug -91项任务assembleDebug -172(来自20种配置)buildDebug -18种配置中的104种assembleDebug我的3个子项目中的2个(它们是Java库,而不是app)中,有两个配置叫做lintClassPath。中缺少此配置buildDebug。buildDebug没有调用assembleDebug任务,assembleDebug也没有调用buildDebug任务。Build -> Make Project)运行构建时,我在扫描中看到实际运行的命令是assembleDebug。更具体地说,它运行了:app:assembleDebug。如您所见,我本人并不真正了解这些差异,但这就是我发现的。如果有人可以向我和其他在这里阅读的用户解释它,那可能会很棒:)谢谢!
| 归档时间: |
|
| 查看次数: |
25569 次 |
| 最近记录: |