zoukankan      html  css  js  c++  java
  • gradlew项目构建工具

    gradlew

    1、介绍

    gradlew是Gradle Wrapper

    2、目的/作用

    作用一

    通常情况,项目中使用项目构建工具,比如maven或者gradle时,都需要将对应的软件下载下来,然后配置(M2_HOME、BIN等),再进行使用。

    为了简化上述步骤(软件下载 ->软件配置),gradlew(Gradle Wrapper)的目的就在于此:即:使其使用者再本地计算机中不需要安装与配置gradle时,依然可以通过一个简单的命令实现对一个gradle项目的构建。

    作用二

    本机gradle是2.0版本,构建某一个项目需要3.0版本,麻烦的做法是下载3.0gradle并配置环境变量、将bin加入path。而使用gradlew可以很好的解决此场景。

    3、原理

    1)执行gradlew命令时,gradlew会首先进行检查本机是否已经安装并配置了gradle,会从远程下载gradle到本地

    2)自动进行解压

    3)执行gralde相关命令对项目进行构建

    4)之后再次使用时就直接执行gradlew对应的gradle命令

    4、最佳实践

    但凡使用gradle来构建项目,并且构建的是一个比较正式的公司里的项目,请加上gradlew。并通过如下的流程使用gradle与gradlew

    4.1 项目的首个创建者需要安装并且配置gradle,并使用gradle创建gradle项目

    通过IDEA建立gradle项目:

    1)新建gradle工程

    上图选择传统的local gradle方式,一步步过度到gradlew上。

    之后点击next,选择项目路径后点击finish。

    gradle会进行初始构建:

    2)项目创建者本机需要安装并配置好gradle环境,然后在项目根目录执行gradle wrapper命令生成:gradlew脚本、gradlew.bat脚本、gradle文件夹:

    其中gradle/gradle-wrapper.properties中配置了运行gradlew时下载gradle地址:

    之后再运行gradlew clean build进行编译时,此时不会使用本机已经安装的gradle,而是根据gradle-wrapper.properties中配置的地址下载gradle并安装并使用其进行构建项目:

    默认安装地址为:用户目录/.gradle/wrapper/dists(gradle-wrapper.properties配置文件中distributionBase属性设置),默认是当前操作系统用户目录,可以增加环境变量修改路径:

    可以通过如下命令修改gradlew的配置(实际上是通过下面命令修改gradle-wrapper.properties)中内容

    上图修改完gradlew使用的gradle版本,再执行gradlew命令(比如gradlew clean build构建项目)时,会重新下载对应的版本。

    因此gradle/gradle-wrapper.propertie是非常重要的gradlewrapper的属性文件。

    gradlew与gradle说明:

    使用gradlew执行命令与使用gradle执行的作用是一样的(命令使用方式、参数都是一样的),比如gradle clean build与gradlew clean build,只不过是通过不同的gradle版本,gradlew执行时使用的gradle版本是gradle-wrapper.properties中配置的,而使用gradle执行时使用的gradle版本是系统环境变量中的gradle

    gradle-wrapper.properties配置文件维护建议

    不推荐直接维护gradle-wrapper.propertie配置文件(无论是直接手工修改该文件还是通过上述命令行方式修改,本质上都是直接修改这个配置文件),而是将配置项的修改或者增加的配置想在项目的build.gradle文件中通过task wrapper的方式修改,不推荐直接维护的原因是:如果gradlew升级的话,还需要将之前在gradle-wrapper.propertie中的个性化修改再修改一次:

    (其中distributionType有两个选项:all与bin,all是下载gradle全部,包括二进制可运行程序、源码、文档,而bin只有二进制可运行程序)

    整个第2)部分总结

    由项目的创建者使用gradle创建项目并通过项目的build.gradle文件的task wrapper修改好gradlew属性(其他人使用gradlew构建项目使用的gradle版本,下载范围等属性),然后由项目的创建者执行一次gradle wrapper命令生成gradlew、gradlew.bat、gradle文件夹(如果gradlew属性修改,还需要重新执行gradle wrapper命令)

    3)项目创建者将如下截图中选中的文件上传到版本库中,如果使用的git,其他文件及目录加入.gitignore中,无需上传

    4.2 其他研发人员

    其他研发人员不需要安装gradle,直接下载项目,通过gradlew命令(如gradlew clean build)就可以实现在不安装gradle条件下,完成项目的构建。

    4.3 注意

    使用gradlew时,其使用的gradle版本是配置文件(项目build.gradle中或者gradle-wrapper.propertie)中设置的,与系统环境变量中设置的gradle是不同的,版本有可能是不同的,需要注意。

     

     

  • 相关阅读:
    文件目录T位
    改变文件权限的用户身份
    改变进程打开文件默认权限检查方式
    新建文件的UID和GID
    进程的用户ID
    centos7使用无线wifi连接
    2.8. 创建 NSManagedObject 的子类 (Core Data 应用程序实践指南)
    2.7. 属性的各种设置选项(Core Data 应用程序实践指南)
    2.6. 类型(Core Data 应用程序实践指南)
    2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)
  • 原文地址:https://www.cnblogs.com/xiaolei2017/p/13264734.html
Copyright © 2011-2022 走看看