Loading

gradle 下载与配置

参考:https://www.cnblogs.com/mindzone/p/12880854.html

 

Gradle是源于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置面向Java应用为主。当前其支持的语言暂时有Java、Groovy、Kotlin和Scala。

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

 

一:下载    https://gradle.org/releases/     此处下载  5.6.4版本

 

二:安装

1,解压到此目录   D:\gradle\gradle-5.6.4

 

 

 

2,配置环境变量

GRADLE_HOME                          D:\gradle\gradle-5.6.4   

GRADLE_USER_HOME              D:\gradle\localRepository

为Path添加选项     

%GRADLE_HOME%\bin

gradle 默认的仓库地址为:C:\Users\xiaochangjian\.gradle\caches\modules-2\files-2.1    

3,配置仓库源

在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。

allprojects {
    repositories {
        maven { url 'file:///C:/Java/maven_repository'}
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

repositories 中写的是获取 jar 包的顺序。

先是本地的 Maven 仓库路径;

接着的 mavenLocal() 是获取 Maven 本地仓库的路径,应该是和第一条一样,但是不冲突;

第三条和第四条是从国内和国外的网络上仓库获取;

阿里云的依赖:     http://maven.aliyun.com/nexus/content/groups/public/           或            https://maven.aliyun.com/repository/public

最后的 mavenCentral() 是从Apache提供的中央仓库获取 jar 包。

 

三,项目与 gradle 进行关联

 不同版本构建的工程目录结构

 

三,配置

1,dependencies

build.gradle 构建文件【类似Maven的 pom.xml】

在 buildscript, allprojects, project("项目名") 都有 dependencies 子选项

buildscript -> dependencies

allprojects -> dependencies

project("项目名") -> dependencies

 复制坐标,粘贴进Dependencies依赖的代码块中,IDEA会自动检测,或者像2020版的提供一个重构的按钮。

 

/* 一 */
apply from: "./libraries.gradle" 用于引入 libraries.gradle

/* 二 */
根级别的repositories主要是为了当前项目提供所需依赖包,比如log4j、spring-core等依赖包可从mavenCentral仓库获得。
buildScript(构建本身):repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。
allprojects:repositories用于多项目构建,为所有项目提供共同所需依赖包。
而子项目可以配置自己的repositories以获取自己独需的依赖包。
allprojects
repositories
publishing
repositories

dependencyManagement 并不会下载依赖jar包,只是定义标准。当dependencies没有指定版本时使用。
dependencies 直接依赖,会下载jar包

dependency:代码编译运行时所需要的东西,项目打包后这些东西都存在
plugin:作为开发,编译,打包时的一种辅助工具,一般不打包进项目中


/* 三 */
gradle中的常用属性可以写在gradle.properties中

allprojects
group (groupId)
name (artifactId)
version 项目版本(全局的)
sourceCompatibility = 1.8 // source使用的jdk版本
targetCompatibility = 1.8 // 编译时使用的jdk版本

 

/* 四 */
allprojects
task

apply plugin: 存在于 allprojects 或 project 目录

dependencies
buildscript
allprojects
project

 

 

四,gradle wrapper

经常会在自己的项目中没有看见gradle,反而,却总是能看见一个叫gradle wrapper的玩意儿。

wrapper 是包装的意思, gradle wrapper 是对 gradle的包装。


因为gradle处于快速迭代阶段,经常发布新版本,如果我们的项目直接去引用,那么更改版本等会变得无比麻烦。而且每个项目又有可能用不一样的gradle版本,这样去手动配置每一个项目对应的gradle版本就会变得麻烦,gradle的引入本来就是想让大家构建项目变得轻松,如果这样的话,岂不是又增加了新的麻烦?

通过读取配置文件中gradle的版本,为每个项目自动的下载和配置gradle,就是这么简单。我们便不用关心如何去下载gradle,如何去配置进项目来。

 

在Android Studio安装的时候便会自带这个功能jar包,并且我们也看到了gradle-wrapper.properties。Android Studio每新建一个项目,就会将个目录下的这两个文件拷入到项目的gradle文件夹下面。

gradlew是在linux,mac下使用的,gradlew.bat是在window下使用的,提供在命令行下执行gradle命令的功能

C:\Users\xiaochangjian\.gradle\wrapper\dists

posted @ 2021-07-13 14:28  Sam Xiao  阅读(1749)  评论(0编辑  收藏  举报