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区别详解

 

posted @   tonglin0325  阅读(1620)  评论(0编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示