【问题标题】:Difference between using gradlew and gradle使用 gradlew 和 gradle 的区别
【发布时间】:2017-01-30 08:01:26
【问题描述】:

使用gradlewgradle 有什么区别或者它们是一样的吗?

【问题讨论】:

    标签: gradle gradlew


    【解决方案1】:

    不同之处在于./gradlew 表明您正在使用gradle 包装器。包装器通常是项目的一部分,它有助于安装 gradle。如果您在没有包装器的情况下使用 gradle,则必须手动安装它 - 例如,在 mac brew install gradle 上,然后使用 gradle 命令调用 gradle。在这两种情况下,您都在使用 gradle,但前者更方便并确保不同机器之间的版本一致性。

    每个 Wrapper 都与特定版本的 Gradle 相关联,因此当您 首先为给定的 Gradle 版本运行上述命令之一,它 将下载相应的 Gradle 发行版并使用它 执行构建。

    这不仅意味着您不必手动安装 Gradle 你自己,但你也一定要使用 Gradle 的版本 build 是专为。这使您的历史构建更可靠

    在此处阅读更多信息 - https://docs.gradle.org/current/userguide/gradle_wrapper.html

    此外,Udacity 有一个简洁的高级视频解释 gradle 包装器的概念 - https://www.youtube.com/watch?v=1aA949H-shk

    【讨论】:

    • 也许我读错了,但对我来说听起来像是一个危险信号。听起来 Gradle 不向后兼容,或者它发展得非常快(而且不稳定)。无法访问 Internet 的 CI 服务器会发生什么情况?
    • @TheImpaler 我猜你必须安装所有需要的 Gradle 版本,就像 Wrapper 可以访问 Internet 时那样。
    • 所以一个简单的结论可能是:总是更喜欢./gradlew build 而不是gradle build 对吧?
    • @OrenIshShalom 正确,您甚至不必将构建部分指定为 cleanbuild 是默认任务,当您执行 ./gradlew
    【解决方案2】:

    gradle 与 gradlew

    gradlew 是一个使用gradle 的包装器(w - 字符)。

    在后台gradlew 执行三个主要操作:

    • 下载并安装正确的gradle版本
    • 解析参数
    • 调用gradle 任务

    使用 Gradle Wrapper,我们可以将项目分发/共享给所有人,以使用相同的版本和 Gradle 的功能(编译、构建、安装...),即使它尚未安装。

    创建包装器运行:

    gradle wrapper
    

    这个命令生成:

    gradle-wrapper.properties 将包含有关 Gradle 分发的信息

    *./ 在Unix上用于指定当前目录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 2021-02-21
      • 2020-09-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多