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