# gradle
**Repository Path**: trial-run/gradle
## Basic Information
- **Project Name**: gradle
- **Description**: gradle
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-09-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
- 目标不是多专业,仅仅够用足矣
[TOC]
# gradle 安装
## 项目代码
- https://gitee.com/trial-run/gradle
- https://gitee.com/kcnf
## 下载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,冲击力还是蛮强悍的
~~~
2.3
com.google.code.kaptcha
kaptcha
${kaptcha.version}
jdk15
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-context
junit
junit
~~~
~~~
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-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'
}
~~~
## 自动化测试
## 自定义任务
## 解决本地maven和gradle同时存在
## gradle和maven项目互转
# 参考
- [参考1](https://www.cnblogs.com/lykbk/p/erwerwerwerwerwerwe.html)
- [许晓斌infoQ论述](https://www.infoq.cn/article/2011/04/xxb-maven-6-gradle/)
- [参考2](https://my.oschina.net/u/1469495/blog/1935798?p=6)
- [易百教程](https://www.yiibai.com/gradle)
- [mybatis-plus](https://github.com/baomidou/mybatis-plus)
- 