[TOC]

gradlew 命令详解

gradlew tasks –all:查看所有任务,包括缓存任务等;

gradlew clean:清除工程目录下的build文件夹;

gradlew build: 检查依赖并编译打包,debug、release环境的包都会打出来;

gradlew assemble:编译指定的包:如Debug包(gradlew assembleDebug)、Release包(gradlew assembleRelease)、渠道包(gradlew assembleOemRelease/assembleOemDebug)、定制的版本等等;

gradlew install:编译并安装指定的包。如Debug包(gradlew installDebug)、Release包(gradlew installOemRelease/installOemDebug)、定制的版本等等;

gradlew uninstall:卸载已安装的指定模式的包:如Debug包(gradlew uninstallDebug)、Release包(gradlew uninstallRelease)、渠道包(gradlew uninstallOemRelease/uninstallOemDebug)、定制的版本等等;

gradlew :模块名称:dependencies ,如gradlew :app:dependencies,作用:查看包依赖关系;

gradlew build -i/–info -d/–debug -s/–stacktrace:编译并打印debug模式和info等级的日志及所用异常的堆栈信息(–stacktrace);

gradlew clean build –refresh-dependencies:组合指令,清除构建并重新构建,同时强制刷新依赖(gradlew –refresh-dependencies);

gradlew –offline:离线模式,即让Gradle只使用本地cache里的依赖,如果cache中没有也不会更新依赖,而是提示编译失败;

gradlew –refresh-dependencies:强制刷新依赖,即检查依赖是否有更新比如动态版本、SHA1进行本地cache和远程仓库散列码的对比等,有更新则下载更新进行构建;使用这种方式可以避免手动删除cache;–info:打印堆栈信息;

gradlew –daemon:守护进程,使用Gradle的守护进程构建,能够提高构建效率,如果守护进程没启动或现有的都处于忙碌状态,就启动一个守护进程;

守护进程和守护线程的区别:

  • 守护进程 :只会守护到主进程的代码结束
  • 守护线程 :会守护所有其他非守护线程的结束

gradlew –no-daemon:如果你已经配置为使用守护进程构建,可以使用该选项本次不用守护进程构建;

gradlew –continuous:连续构建,即任务队列中即使某个任务失败,不会终止执行,而是会继续执行下一个任务;
gradlew –parallel –parallel-threads=N:并行编译;

gradlew –configure-on-demand:按需编译;

依赖配置

implementation:gradle会将依赖项添加到编译类路径,并将依赖项打包到编译输出。且其他模块只有在运行时才能使用该依赖项。

api:gradle会将依赖项添加到编译类路径和编译输出。当一个模块包含 api 依赖项时,会让 gradle 了解该模块要以传递方式将该依赖项导出到其他模块,以便这些模块在运行时和编译时都可以使用该依赖项。

compileOnly:gradle只会将依赖项添加到编译类路径,不会将其添加到编译输出。

runtimeOnly:gradle只会将依赖项添加到编译输出,以便在运行时使用。即,不会将其添加到编译类路径。

annotationProcessor:要添加对作为注解处理器的库的依赖关系,必须使用 annotationProcessor 配置将其添加到注解处理器类路径。