初体验gradle

gradle安装与简单使用

Posted by John Mactavish on July 27, 2019

简介

  Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。(摘自百度百科)

安装

sudo apt install gradle gradle –version

下载了一大堆东西,gradle版本4.4.1 。

gradle 目录

  在/tmp目录建立test_gradle文件夹,进入其中

gradle init
tree -a (-a参数显示隐藏目录) tree output

gradlew ,gradlew.bat以及wrapper

  Gradle Wrapper是为Gradle项目的使用者提供帮助的。项目的原始开发者在他的Gradle项目中设置了Wrapper,那么其他用户在构建时,将可以直接执行以下命令:

./gradlew [task] (UNIX/Linux) gradlew [task] (Windows) 每一个Wrapper都会绑定到一个特定版本的Gradle,当用户第一次执行上面的命令时,Wrapper会自动地下载并安装对应版本的Gradle。

  这就带来两个好处:

1.用户不必自己下载、安装、配置Gradle
2.用户进行项目构建时能够确保使用正确的Gradle版本(特别是在构建历史项目时特别明显)

  没有这些东西时执行

gradle wrapper

在配置了Wrapper的Gradle项目中,会存在以下的重要文件:

gradlew (Unix) 或者 gradlew.bat (Windows)
gradle/wrapper/gradle-wrapper.jar (Wrapper JAR)
gradle/wrapper/gradler-wrapper.properties (Wrapper properties)

  1.对于gradlew和gradlew.bat,它们一个是针对linux的,另一个针对windows,是shell脚本文件。
  2.gradle-wrapper.jar 是项目打包必须要有的,不然无法去执行gradlew 。
  3.gradler-wrapper.properties中内容大致如下:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

当本地GRADLE_USER_HOME(当前用户目录)中的wrapper/dists没有安装gradle时,将会自动从此地址distributionUrl中下载gradle,之后的执行将不会再次下载安装。下载的Gradle发行版被存放在目录 $USER_HOME/.gradle/wrapper/dists 中。

一个指令可以下载并安装gradle来构建项目是非常方便的,同时可以直接使用gradlew来完成gradle同样的其他功能。

以上文件都应该放入到版本控制系统中。

build.gradle

  这是总体配置文件,主要配置软件版本信息,引用库的配置以及编译所需的配置。如果开发安卓APP,在app文件夹里面还会有一个同名文件。

  在这个文件当中可以写task,例如build,compile,clean等。当然了,有一些现成的插件可以避免我们造这些轮子。

  Gradle是一种声明式的构建工具。在执行时,Gradle并不会一开始便顺序执行build.gradle文件中的内容,而是分为两个阶段,第一个阶段是配置阶段,然后才是实际的执行阶段。
  在配置阶段,Gradle将读取所有build.gradle文件的所有内容来配置Project和Task等,比如设置Project和Task的Property,处理Task之间的依赖关系等。

  将这个文件直接重命名为build.gradle.kts ,(kts是kotlin脚本后缀)就可以使用kotlin语法写这个配置文件。

settings.gradle

  这个文件应用于multi-project的配置,对于简单的项目可以为空甚至删除。

参考

https://www.zybuluo.com/xtccc/note/275168
千山万水迷了鹿的简书

推荐阅读

Gradle官方文档 ```

最后附上GitHub:https://github.com/gonearewe