工具软件

Gradle | 简介

2020-05-09  本文已影响0人  不一样的卡梅利多

简介

Gradle 是一个支持多语言的构建工具,并且可以与大多数IDE 集成
使用并发和缓存机制构建,使得效率较高。

参考资料

使用方式

1、使用 gradle
通用 Gradle 二进制 压缩包下载解压配置环境变量,也可以使用软件仓库安装 例如 brew install gradle

2、使用 gradle wrapper
gradle wrapper 的命令为 gradlew,gradlew 会依据gradle-wrapper.properties 配置的gradle 版本来构建项目,当配置的gradle 版本不存在,会自动安装。gradle wrapper 一般和项目文件一起使用 (如下图),并且添加到版本管理中,使得开发项目的gradle 构建版本一致。


gradle wrapper.png

gradle-wrapper.properties 配置

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

3、gradle 与gradlew 区别

4、IDEA 导入 gradle 项目
File —>new —> project from exists source —>gradle —finish
idea 构建成功后,会自动设置sourceSet ,module。如果module,sourceSet 没有自动设置,可能是由于编译或者构建失败

相关文件与配置

1、gradle 安装目录
含有gradle.properties ,bin/gradle 执行文件

2、用户目录 (USER_HOME/.gradle)


USER_HOME/.gradle.png

1、该目录为gradle wrapper 下载 gradle 安装目录
2、gradle.properties 为属性配置文件
3、init.gradle 为初始化配置文件,比如仓库镜像全局配置。

init.gradle 替换国内仓库,如果没有该文件,可以新建到这个位置

allprojects {
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
        def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
        def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
                if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
                    remove repo
                }
                if (url.startsWith('https://plugins.gradle.org/m2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
                    remove repo
                }
            }
        }
        maven { url ALIYUN_REPOSITORY_URL }
        maven { url ALIYUN_JCENTER_URL }
        maven { url ALIYUN_GOOGLE_URL }
        maven { url ALIYUN_GRADLE_PLUGIN_URL }
    }
}

3、项目目录


project.png

1、含有gradle wrapper 相关文件 gradle/wrapper ,gradlew(gradlew.bat)
2、含有项目构建配置Script ,setting.gradle,build.gradle

4、属性配置与脚本配置
属性配置

Script 配置

Repositories

1、支持类型ivy,maven,flat
2、默认maven 仓库
mavenCentral()
jcenter()
google()
mavenLocal() 本地缓存USER_HOME/.m2
自定义仓库地址

    maven {
                    url "https://maven.springframework.org/release"
        }

3、自定义过滤支持
由于可以使用groovy 脚本,可以轻松实现一些 过滤,排除依赖这样的定义

命令

语法

 gradle [taskName...] [--option-name...]

taskName 说明

1、多个名称是空格隔开,在多项目中,task 需要添加项目前缀 ,例如 :mySubproject:taskName
2、task 具有依赖关系,比如下图执行 gradle dist ,那么compile ,compileTest,test task 都会执行 ,可以使用-x 排除任务


Tasks.png

3、task来源 :

option-name说明
1、用=赋值 --console=plain
2、开关选项 --build-cache,--no-build-cache

更多
1、命令手册
2、自动补全

插件

插件提供默认行为的一系列功能(Task)
例如Java 插件:构建Java 项目

Tasks:
compileJava
compileTestJava
processResources
jar
javadoc
test
uploadArchives
clean
cleanTaskName
....

使用 script 配置

 plugins {
        id 'java'
}

插件详情

上一篇 下一篇

猜你喜欢

热点阅读