【问题标题】:Difference between clean, gradlew cleanclean 和 gradlew clean 的区别
【发布时间】:2016-03-04 12:12:24
【问题描述】:

以下语句从 Android Studio 项目的终端发出时有什么区别:

Android_Studio_Project_Path: ./gradlew clean

Android_Studio_Project_Path: ./gradlew clean assembleDebug

Android_Studio_Project_Path: ./gradlew clean :assembleDebug

和普通的 Android Studio --> Build --> Clean。

内部流程会有什么不同。

【问题讨论】:

    标签: android android-studio gradle gradlew


    【解决方案1】:
    1. ./gradlew clean

      使用您项目的gradle wrapper 来执行您项目的clean 任务。通常,这只是意味着删除构建目录。

    2. ./gradlew clean assembleDebug

      再次,使用项目的 gradle 包装器分别执行 cleanassembleDebug 任务。因此,它将首先清理,然后在任何非最新相关任务之后执行assembleDebug

    3. ./gradlew clean :assembleDebug

      与#2 基本相同。冒号代表任务路径。任务路径在gradle multi-project's 中是必不可少的,在这种情况下并不重要。这意味着运行根项目的 assembleDebug 任务。在这里,根项目是唯一的项目。

    4. Android Studio --> Build --> Clean

      本质上与./gradlew clean 相同。见here

    如需更多信息,我建议花时间阅读 Android 文档,尤其是 this one

    【讨论】:

    • 很高兴我能帮上忙。 Gradle 非常棒,尤其是用于管理复杂的构建,例如 Android。我期待即将推出的原生构建的许多其他功能......
    • 快捷键是什么:Shift+CMD+C?为什么不删除构建目录?
    • 您能否提供指向该快捷方式说明的链接?我找不到它here,除非我错过了。
    • 也许是愚蠢的问题,但这些命令只删除项目/构建文件夹,但项目/应用程序/构建保持不变。任何人都可以建议如何删除子模块中的构建文件夹。提前致谢
    • @aruy 这不是一个愚蠢的问题。 gradlew clean 应该为当前项目 目录和任何子项目 运行clean 任务。见here。 2个你必须问的问题。项目/应用程序是您正在运行的项目构建的 子项目 吗? project/app/build 文件夹真的是构建输出目录吗?
    【解决方案2】:

    你也应该使用这个:

    ./gradlew :app:dependencies(Mac 和 Linux)-使用 ./

    gradlew :app:dependencies (Windows) - ./

    您在内部使用任何其他版本的 google play 服务的库。如果是,则删除或更新这些库。

    【讨论】:

      【解决方案3】:

      你也可以使用

      ./gradlew clean build(Mac 和 Linux)-带有 ./

      gradlew clean build (Windows) - 没有 ./

      它会删除构建文件夹,并配置您的模块,然后构建您的项目。

      我在 Playstore 上发布任何新应用之前都会使用它。

      【讨论】:

      • @ichimaru 如果使用Powershell终端,命令必须如下:.\gradlew clean build
      猜你喜欢
      • 2020-08-20
      • 2015-11-16
      • 1970-01-01
      • 2021-06-25
      • 2012-02-09
      • 2011-08-19
      • 2018-10-08
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多