Gradle 是什么? Gradle™ 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的 XML。当前其支持的语言限于 Java 、Groovy 和 Scala ,计划未来将支持更多的语言。 — wikipedia.org
特性
DSL 声明项目的配置,更加直观
细粒度的传递依赖管理
增量编译
高效的内存执行
环境搭建 安装 Gradle Windows 在 Gradle 的下载页面 ,下载 gradle-5.4.1-all.zip 文件,解压至 D:\apps\gradle
,并添加环境变量 PATH=D:\apps\gradle\gradle-5.4.1\bin
Mac 1 2 $ brew install gradle $ brew upgrade gradle
验证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ gradle -v ------------------------------------------------------------ Gradle 5.4.1 ------------------------------------------------------------ Build time: 2019-04-26 08:14:42 UTC Revision: 261d171646b36a6a28d5a19a69676cd098a4c19d Kotlin: 1.3.21 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018 JVM: 11.0.4 (Oracle Corporation 11.0.4+10-LTS) OS: Mac OS X 10.14.6 x86_64
Gradle 代理设置 1 2 3 4 5 6 7 8 9 10 $ gradle xxx -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1080 $ vim gradle.properties systemProp.http.proxyHost=192.168.1.101 systemProp.http.proxyPort=8080 systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost systemProp.https.proxyHost=192.168.1.101 systemProp.https.proxyPort=8080 systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost
如果在 Kafka 源码目录下修改的 gradle.properties 无法生效,可以直接拷贝到 ~/.gradle 目录下
编译源码 1 2 3 4 5 6 7 8 $ gradle $ gradle -x test $ gradle idea
如果 Gradle 的配置文件里面,没有设置 idea 插件,导致项目模块无法被识别。则需要删除 .idea 文件夹,并以 build.gradle 打开为项目,即可
实战技巧 不同的项目使用的 Gradle 版本不一致 可以使用 ./gradlew
包装器,就可以避免使用本地安装的 Gradle。Gradlew 会根据项目各自指定的 Gradle 版本进行下载,确保和项目要求的编译环境一致。常用命令如下:
运行单元测试时,报错 No Class Found 修改 Build and run using
和 Run tests using
两个选项为 Gradle
(默认为 IntelliJ IDEA
)
(对 IntelliJ IDEA ™ 的截图)
并发执行任务 1 2 3 4 5 6 $ vim gradle.properties org.gradle.parallel=true $ ./gradlew <task> --parallel
1 2 3 4 $ ./gradlew cleanIdea $ ./gradlew idea
加载本地 jar 1 2 3 4 5 6 dependencies { compile files('libs/yuzhouwan.jar' ) } dependencies { compile fileTree(dir: 'libs' , include: ['*.jar' ]) } dependencies { compile fileTree(dir: 'libs' , include: ['yuzhouwan.jar' ]) }
资料 Doc
Blog
Github
群名称
群号
人工智能(高级)
人工智能(进阶)
大数据
算法
数据库