# 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 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/2.png) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/3.png) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/1.png) ## 下载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项目构建 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/7.png) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/8.png) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/9.png) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/10.png) # 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】 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/4.png) - 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】 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/11.png) - api/apiElements 与 implementation 的区别 - gradle 从 3.4 开始,compile 已经被废弃了,
取而代之的是 api | implementation,俩个我们都可以用 - api - 同模块本地依赖对外开放 - implementation - 同模块本地依赖时依赖隔离 ## 多项目构建 - 【gradle-module】 ## 发布 - 【gradle-deploy】 - Gradle默认提供maven-publish插件 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/6.png) ## 版本冲突解决 - 排除 - 强制指定一个版本 - 通过 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】 - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/20190907/5.png) - 二进制插件 ~~~ 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) - ![avatar](https://raw.githubusercontent.com/kcnf/wiki/master/wx.png)