`
bugtags
  • 浏览: 30321 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android Gradle 技巧之二: 最爱命令行

阅读更多

命令行

很多做 Android 开发不久的同学,习惯于使用图形界面,对命令行操作很陌生甚至恐惧。遇到 AS 运行错误,束手无策。

AS 为了确保易用性,也在 UI 界面上屏蔽了很多命令行运行的细节,导致很多人觉得 AS 难用。

这种情况,我在解决用户集成使用 Bugtags SDK 的问题的时候,经常能遇到。其实 GUI 界面的操作,绝大部分情况下,也是基于命令工具的。如果你习惯了命令行,你会爱上它的,因为它简单、直接,深入。

典型错误

AS 刚推出的时候,stackoverflow 上询问最多的问题,便是进入项目的时候,一直处于:

Gradle: resolve dependancies '_debugCompile'

状态,一直无法前进,到底 IDE 在做什么呢?看不出来。

一句命令行

当用户遇到问题时,我最常提醒用户使用的是在项目根目录下,运行如命令行:

mac:
./gradlew clean build --info > bugtags.log

windows:
gradlew.bat clean build --info > bugtags.log

这个命令行的意思,是运行 clean 和 build 两个 gradle task,并且打开 info 参数使得输出更多的信息,最终把所有输出的信息,输出到项目根目录下的 bugtags.log 文件。用户把这个文件发给我,我根据这个输出文件,通常就能分析出问题所在。

假设命令行去除重定向输指令:

./gradlew clean build --info

信息将会输出在控制台,刚才提到的那个典型错误,可能是这样的:

cmd-output

其实是在下载一个比较大的文件,不用惊慌,你要做的就是 just wait! 至于是在下载什么。我想在下一篇详细描述。

如果你对基本的命令行知识有所了解,前面就已经足够了,如果你想了解更多,请继续。

扩展

在哪运行

当我给出这个命令的时候,最常见的问题,就是在哪运行。答案是控制台(Terminal)。

控制台

在 mac 下,有 terminal(bash/zsh 等),在 windows 下,则是 powershell 或者 cmd。

关键一点:

├── gradlew
├── gradlew.bat

AS 在使用 Gradle 的时候,为了灵活,或者为了应对 Gradle 系统的快速迭代,推荐使用在项目根目录中放置 Gradle 的 wrapper:gradlew 来实现对不同版本的使用。

因此,在控制台运行命令,主要是跟 gradlew 打交道。这个 wrapper,在 mac 下是一个具有执行权限的文件:gradlew,在 windows 下,是一个批处理文件:gradlew.bat

通常,mac 下在当前目录下运行可执行文件是这样:

./gradlew xxx

windows 下在当前目录下运行批处理文件是这样:

gradlew.bat xxx

Terminal 插件

AS(Intellij IDEA)已经做了一个很实用的插件:

as-terminal

点击 Terminal,AS 会帮你完成下面的操作:

  • 模拟打开 terminal
  • cd 到当前项目根目录下

快速定位文件夹

IDE 还支持将项目中的某个文件夹拖放到 Terminal 窗口中实现快速定位到这个文件夹:

terminal-drag-location

使用 help

要知道都有哪些 gradle 命令运行的参数,可以使用:

$ ./gradlew --help

USAGE: gradlew [option...] [task...]
...

来获取。下面列举几个重要的参数。

build 某个指定 module

AS 推荐的结构是 multiple project 结构,即一个 project 下,管理多个 module,如果每次都要 build 全部的 project 的话,有点浪费时间,则可以使用 -p module 参数,其中 module 是你要 build 的 module:

$ ./gradlew -p app clean build

明确指定不执行某个 task

Gradle 的命令存在依赖,例如 build task,是依赖于一系列的其他的 task,如果想要指定不执行某个 task,则可以使用 -x task 参数,其中 task 是要忽略的那个,这个参数可以传递多次。

$ ./gradlew build -x test -x lint

总结

Gradle 的命令行还有很多其他技巧,上面只是列举到了本人日常用到最多的几个。有兴趣可以留言深入讨论。

参考资料

mac-terminal

windows-terminal

有问题?在文章下留言或者加 qq 群:453503476,希望能帮到你。

想要及时收到最新博客文章,请关注:

『mobdev』微信公众号二维码

mobdev

分享到:
评论

相关推荐

    com.android.tools.build:gradle:3.2.0

    而`com.android.tools.build:gradle:3.2.0`是Android Studio中使用的特定版本的Android Gradle插件,这个版本的插件对Android开发者来说具有重要的意义。 1. **Gradle插件的作用**: - **依赖管理**:Gradle插件...

    Android Gradle权威指南高清版

    在深入探讨Android Gradle权威指南高清版的具体知识点之前,需要首先明确Gradle是什么。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言来声明项目设置,比...

    Android Gradle权威指南

    2. **Android插件**:Android插件是Gradle与Android Studio集成的关键,它为Android项目提供了特定的构建生命周期和任务。书中会详细解析如何使用Android插件设置项目结构,配置应用模块,以及处理资源和编译选项。 ...

    Gradle Recipes for Android Master the New Build System for Android pdf 0分

    根据提供的文件内容,这本书名为《Gradle Recipes for...总而言之,这本书为Android开发者提供了一套全面的Gradle构建系统指南,从基础使用到高级技巧,都是为了帮助开发者更好地管理和优化他们的Android项目构建过程。

    Android Gradle 插件中文指南

    google推出了全新的Android Studio集成开发环境,其中Android项目的结构与Eclipse的Android项目结构有很大的区别,原因就在于两开发环境使用的构建工具不同...对应Android项目的Gradle插件就是Android Gradle Plugin。

    Android编译gradle.properties文件及说明

    Android编译gradle.properties文件及说明, 解决Android gradle编译错误OOM:java heap space

    Android studio 配置gradle 2.2.3 插件所需pom、jar文件

    classpath 'com.android.tools.build:gradle:2.2.3' } } ``` 3. **同步Gradle**:完成上述配置后,点击Android Studio中的"File" -> "Sync Project with Gradle Files",让Android Studio下载并应用新的Gradle...

    sentry-android-gradle-plugin:Sentry Android的Gradle插件。 上载proguard,调试文件等

    Sentry Android的Gradle插件是Android开发者用于集成错误跟踪服务Sentry的重要工具,它极大地简化了在构建过程中上传混淆规则(Proguard)和调试信息到Sentry的过程。在这个插件的帮助下,开发团队能够更有效地诊断...

    Android Gradle用户指南

    #### 二、Gradle在Android中的使用要求 - **Gradle版本要求:**至少需要使用Gradle 1.10、1.11或1.12,并且插件版本为0.11.1。 - **SDK Build Tools版本:**要求版本19.0.0,某些新特性可能需要更高的版本。 #### ...

    gradle-6和8的版本

    通过这种方式,可以在不同版本间快速切换,无需手动下载和替换Gradle二进制文件。 总结来说,Gradle 6.5.1和8.0.2分别对应Cocos Creator 3.7和3.8,它们在构建流程、依赖管理和性能优化等方面有着不同的特点。了解...

    Android studio 配置gradle 2.2.2 插件所需pom、jar文件

    classpath 'com.android.tools.build:gradle:2.2.2' } ``` 接着,在全局的`gradle-wrapper.properties`文件中设置Gradle版本,例如: ``` distributionUrl=...

    android-maven-gradle-plugin,与android库项目兼容的gradle的maven插件.zip

    classpath 'com.android.tools.build:gradle:版本号' classpath 'com.github.dcendents:android-maven-gradle-plugin:版本号' } } ``` 2. 应用插件并配置相关属性: ```groovy apply plugin: '...

    Android gradle-1.6

    classpath 'com.android.tools.build:gradle:1.6.0' } } ``` 同时,确保你的Android Studio版本与Gradle插件兼容,因为不兼容的版本可能会导致构建失败。 总结起来,Android Gradle插件1.6是Android开发中的一个...

    Android Gradle5.1.1 - 5.5.1共7个版本的gradle

    Android Gradle5.1.1 - 5.5.1共7个版本的gradle: gradle-5.1.1-all.zip gradle-5.1-all.zip gradle-5.2-all.zip gradle-5.3.1-all.zip gradle-5.3-all.zip gradle-5.4.1-all.zip gradle-5.4-all.zip gradle-5.5.1-...

    Android studio 配置gradle 2.3.0 插件所需pom、jar文件

    classpath 'com.android.tools.build:gradle:2.3.0' } } ``` 3. **同步项目**:完成上述更改后,点击Android Studio右上角的`Sync Now`按钮,以使新配置的Gradle版本生效。 4. **处理pom和jar文件**:在某些...

    Android Gradle4.7 - 5.0共9个版本的gradle

    Android Gradle4.7 - 5.0共9个版本的gradle: gradle-4.7-all.zip gradle-4.8.1-all.zip gradle-4.8-all.zip gradle-4.9-all.zip gradle-4.10.1-all.zip gradle-4.10.2-all.zip gradle-4.10.3-all.zip gradle-4.10-...

    Android gradle 资源下载 gradle-6.7.1-all.zip gradle-4.10.1-all.zip

    在Android开发领域,Gradle是一种广泛使用的构建自动化工具,它为开发者提供了强大的灵活性和可定制性,使得构建、测试和部署Android应用变得更加便捷。这里提到的`gradle-6.7.1-all.zip`和`gradle-4.10.1-all.zip`...

    Android Gradle6.01 - 6.4.1共7个版本的gradle

    Android Gradle6.01 - 6.4.1共7个版本的gradle: gradle-6.0.1-all.zip gradle-6.1.1-all.zip gradle-6.1-all.zip gradle-6.2.1-all.zip gradle-6.2.2-all.zip gradle-6.2-all.zip gradle-6.4.1-all.zip

    Android Gradle 4.1 打包离线下载

    1. **下载Gradle二进制包**:首先,你需要从Gradle官方网站下载对应版本的Gradle,即gradle-4.1。这个压缩包包含了Gradle运行所需的全部文件。 2. **配置环境变量**:将下载的Gradle解压到指定目录,例如`C:\Gradle...

Global site tag (gtag.js) - Google Analytics