Gradle构建入门

1,315 阅读3分钟

Gradle构建入门

在Gradle构建项目的过程中所有的内容都是基于两个基本概念:项目(Project)和任务(Task)。每个Gradle构建都是由一个或者多个project组成,而每个project都包含一个或者多个task。task可以是自己编写的也可以是gradle自带的,task之间存在依赖关系,以此保证task的顺利进行。task就像代码中方法一样,可以完成特定的任务。

在构建项目的过程中,一个构建项目对应一个Project。在项目构建的过程中,会生成build.gradle构建文件来配置对应一个项目。在这个文件中会定义task,引入依赖和插件等。

安装Gradle

  1. Gradle官网下载压缩文件。

  2. 将压缩文件解压到你常用安装软件的文件夹。

  3. 配置环境变量

    GRADLE_HOME:Gradle解压到文件夹的路径 export GRADLE_USER_HOME=自定义目录 GRADLE_USER_HOME:如果不配置此变量,在Gradle中默认在USER_HOME/.gradle文件夹下保存在构建程序中从远程仓库下载下来的依赖以及保存使用gradle wrapper时下载下来的gradle(保存在此目录下的wrapper中)。因为Gradle没有像Maven一样有setting.xml配置文件所以Gradle采用设置环境变量的方式。如果配置了此变量则使用此变量对应的目录保存下载的依赖和gradle。

  4. 在命令行中运行gradle -v,出现如下信息则表明Gradle安装成功。

     Welcome to Gradle 6.5.1!
     
     Here are the highlights of this release:
      - Experimental file-system watching
      - Improved version ordering
      - New samples
     
     For more details see https://docs.gradle.org/6.5.1/release-notes.html
     
     
     ------------------------------------------------------------
     Gradle 6.5.1
     ------------------------------------------------------------
     
     Build time:   2020-06-30 06:32:47 UTC
     Revision:     66bc713f7169626a7f0134bf452abde51550ea0a
     
     Kotlin:       1.3.72
     Groovy:       2.5.11
     Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
     JVM:          14.0.1 (Oracle Corporation 14.0.1+7)
     OS:           Mac OS X 10.15.6 x86_64</pre>

使用命令行构建项目

  1. 创建一个项目目录例如:gradle。

  2. 进入项目目录中执行gradle init,Gradle会执行init task来初始化构建项目。

    # hank @ HankMacBook in ~/Java_Project [15:30:23] 
    $ mkdir gradle
    
    # hank @ HankMacBook in ~/Java_Project [15:30:35] 
    $ cd gradle
    
    # hank @ HankMacBook in ~/Java_Project/gradle [15:30:42] 
    $ gradle init
    
    Select type of project to generate:
      1: basic				
      2: application		
      3: library			
      4: Gradle plugin		
    Enter selection (default: basic) [1..4] 1
    
    Select build script DSL:
      1: Groovy
      2: Kotlin
    Enter selection (default: Groovy) [1..2] 1
    
    Project name (default: gradle): 
    
    > Task :init
    Get more help with your project: https://guides.gradle.org/creating-new-gradle-builds
    
    BUILD SUCCESSFUL in 3m 9s
    2 actionable tasks: 2 executed
    # hank @ HankMacBook in ~/Java_Project/gradle [15:34:01] 
    $ ls
    build.gradle    gradle          gradlew         gradlew.bat     settings.gradle
    
  3. 按照提示就可以进行项目初始化构建。根据不同的选项Gradle会生成不同项目配置文件以及项目目录。

在IDEA上使用Gradle

1.  Gradle user from:这里配置的目录是给IDEA构建项目时,用来保存下载依赖的。也就是说IDEA不会使用GRADLE_USER_HOME,而是可以另起炉灶,但是你也可以将目录配置成GRADLE_USER_HOME那么使用IDEA构建项目时就会使用GRADLE_USER_HOME了。   
2.  Download external annotations for dependencies:这是IDEA用来配置是否下载依赖的注释。勾选了的话会把注释文件下载到~/.m2中也就是Maven的仓库里。  
3.  Use Gradle from:这里是配置使用哪里的Gradle 
	1.  gradle-wrapper.properties:这里是创建新项目时IDEA的默认选项:使用wrapper构建,目前没办法改。使用这个那么IDEA会使用默认的Gradle版本去构建wrapper项目,如果本地没有安装IDEA默认的Gradle那么就会去下载,不过很慢!!!
	2.  Specified location:这里就是配置使用自己安装的Gradle进行项目构建。

推荐使用默认Gradle下载仓库,而不使用GRADLE_USER_HOME。因为当你使用GRADLE_USER_HOME时,而又使用wrapper构建,那IDEA会将wrapper或者其他的不明文件下载到默认仓库目录而不是GRADLE_USER_HOME所以使用IDEA进行项目构建时很容易造成文件不在同一目录下,这样不容易管理。
推荐使用Specified location本地安装的Gradle进行项目构建,不过IDEA默认不会生成wrapper相关文件。但是IDEA提供了wrapper任务来生成wrapper相关文件。