mac下安装gradle7.3
gradle和maven类似,是一个构建工具
gradle安装和配置
1.mac安装gradle
1 | brew install gradle |
或者下载gradle的二进制安装包
1 | https: //gradle .org /releases/ |
然后在~/.bash_profile中配置
1 2 3 | # gradle export GRADLE_HOME= /Users/lintong/software/gradle-7 .3 export PATH=$GRADLE_HOME /bin :$PATH |
2.查看是否安装成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | gradle - v ------------------------------------------------------------ Gradle 7.3 ------------------------------------------------------------ Build time : 2021-11-09 20:40:36 UTC Revision: 96754b8c44399658178a768ac764d727c2addb37 Kotlin: 1.5.31 Groovy: 3.0.9 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 1.8.0_211 (Oracle Corporation 25.211-b12) OS: Mac OS X 10.16 x86_64 |
使用gradle后,老版本的IDEA 2017.1 对gradle的支持较弱,建议升级到新版本 2021.1
如果需要添加 gradle.properties 配置文件,请放在 $GRADLE_HOME 目录
1 2 | ➜ /Users/lintong/software/gradle-7 .3.2 $ ls | grep gradle.properties gradle.properties |
配置文件内容
1 2 3 4 5 | /Users/lintong/software/gradle-7 .3.2 $ cat gradle.properties username=xx password=xx mavenUser=xx mavenPassword=xx |
gradle处理依赖冲突
使用gradle的时候如果遇到依赖冲突,可以添加如下配置,添加后再编译就能使得有冲突的时候自动失败
1 2 3 4 5 | configurations.all { resolutionStrategy { failOnVersionConflict() } } |
可以看到引入了多个版本的 org.apache.commons:commons-math3,那么就需要找到是哪几个jar包引入了冲突,可以使用如下命令
1 | gradle dependencyInsight --configuration runtimeClasspath --dependency org.apache.commons:commons-math3 |
可以看到在 org.apache.spark:spark-hive_2.12:3.1.2, org.apache.hadoop:hadoop-common:3.2.1, org.apache.spark:spark-core_2.12:3.1.2, org.apache.spark:spark-sql_2.12:3.1.2 中引入了冲突,且默认使用的版本都是最高的 3.6.1,这时候使用exclude来排除冲突,如下
1 2 3 4 5 6 7 8 9 10 11 12 | implementation ( 'org.apache.spark:spark-hive_2.12:3.1.2' ){ exclude group: "org.apache.commons" , module: "commons-math3" } implementation ( 'org.apache.hadoop:hadoop-common:3.2.1' ) { exclude group: "org.apache.commons" , module: "commons-math3" } implementation ( 'org.apache.spark:spark-core_2.12:3.1.2' ) { exclude group: "org.apache.commons" , module: "commons-math3" } implementation ( 'org.apache.spark:spark-sql_2.12:3.1.2' ){ exclude group: "org.apache.commons" , module: "commons-math3" } |
再次 gradle clean fatJar,就看不到 commons-math3 的冲突了
也可以强制指定版本的方式来排除依赖冲突,如下
1 2 3 4 5 | implementation ( 'com.google.guava:guava' ) { version { strictly '30.1.1-jre' } } |
或者
1 2 3 | implementation ( 'com.google.guava:guava:30.1.1-jre' ) { force = true } |
这样guvua的依赖冲突就解决了
参考:gradle依赖冲突解决 和 详解Gradle依赖冲突解决方式
Downgrading versions and excluding dependencies
gradle插件搜索
1 | https: //plugins .gradle.org /search |
implementation、api、compileOnly等的区别
参考:implementation、api、compileOnly区别详解
本文只发表于博客园和tonglin0325的博客,作者:tonglin0325,转载请注明原文链接:https://www.cnblogs.com/tonglin0325/p/15633694.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决