- 目标不是多专业,仅仅够用足矣
gradle 安装
项目代码
下载gradle
- https://gradle.org/releases/
- gradle -v
下载jdk
- jdk8
下载groovy
- http://www.groovy-lang.org
- groovy-2.5.8
- groovy 和 gradle的关系
- 类似maven的pom依赖xml语法
案例工具 idea
gradle vs maven
- 在Maven世界中,一个依赖项有6种scope,分别是complie(默认)、provided、runtime、test、system、import。
而grade将其简化为了4种,compile(编译时)、runtime(运行时)、testCompile(测试编译时)、testRuntime(测试运行时) - Gradle支持动态的版本依赖。在版本号后面使用+号的方式可以实现动态的版本管理
gradle-sample项目构建
gradle常用要点
对标maven
- pom 替换为 build.gradle和settings.gradle
- 复用大佬们的代码 pom和build.gradle,冲击力还是蛮强悍的
<properties> <kaptcha.version>2.3</kaptcha.version> </properties> <dependencies> <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>${kaptcha.version}</version> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>
dependencies { compile('org.springframework:spring-core:2.5.6') compile('org.springframework:spring-beans:2.5.6') compile('org.springframework:spring-context:2.5.6') compile('com.google.code.kaptcha:kaptcha:2.3:jdk15') testCompile('junit:junit:4.7') }
settings.gradle 和 build.gradle
- build.gradle - 文件包含项目构建所使用的脚本
- settings.gradle - 文件将包含必要的一些设置
例如 任务或项目之间的依懒关系等
构建脚本概要
- 【gradle-script】
- project 常用
- 属性:
group name(artifact) version 项目版本(全局的) sourceCompatibility = 1.8 // source使用的jdk版本 targetCompatibility = 1.8 // 编译时使用的jdk版本或者更新的java虚拟机兼容 compileJava.options.encoding = 'UTF-8' compileTestJava.options.encoding = 'UTF-8'
- 方法
apply 应用插件 dependencies 添加依赖 repositories 添加仓库 task 定义任务 buildscript allprojects subprojects configurations
依赖管理
- 【gradle-sample】
- api/apiElements 与 implementation 的区别
- gradle 从 3.4 开始,compile 已经被废弃了,
取而代之的是 api | implementation,俩个我们都可以用 - api - 同模块本地依赖对外开放
- implementation - 同模块本地依赖时依赖隔离
- gradle 从 3.4 开始,compile 已经被废弃了,
多项目构建
- 【gradle-module】
发布
- 【gradle-deploy】
- Gradle默认提供maven-publish插件
版本冲突解决
- 排除
- 强制指定一个版本
- 通过 help -> dependencies 任务可以查询详细的依赖
常用配置更改
- 敏感信息外部配置
- gradle.properties 机制
- 和maven一样更换本地仓库的位置
- 通过系统环境变量配置
- GRADLE_USER_HOME
- D:\gradle\gradleRepository
- 通过idea中指定
- 本地缓存路径为
- D:\gradle\gradleRepository\caches\modules-2\files-2.1
- 通过系统环境变量配置
- 和maven一样指定远程私服
repositories { mavenLocal() maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } jcenter() }
- 和maven配置一样profile
- 和maven一样 父级依赖机制
常用三方插件
- 插件的类型 脚本插件和二进制插件
- 自定义脚本插件 【gradle-script】
- 二进制插件
plugins { id 'java' }