mac下安裝gradle7.3


gradle和maven類似,是一個構建工具

gradle安裝和配置

1.mac安裝gradle

brew install gradle

或者下載gradle的二進制安裝包

https://gradle.org/releases/

然后在~/.bash_profile中配置

# gradle
export GRADLE_HOME=/Users/lintong/software/gradle-7.3
export PATH=$GRADLE_HOME/bin:$PATH

2.查看是否安裝成功

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 目錄

➜  /Users/lintong/software/gradle-7.3.2 $ ls | grep gradle.properties
gradle.properties

配置文件內容

/Users/lintong/software/gradle-7.3.2 $ cat gradle.properties
username=xx
password=xx
mavenUser=xx
mavenPassword=xx

gradle處理依賴沖突

使用gradle的時候如果遇到依賴沖突,可以添加如下配置,添加后再編譯就能使得有沖突的時候自動失敗

configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
    }
}

 

可以看到引入了多個版本的 org.apache.commons:commons-math3,那么就需要找到是哪幾個jar包引入了沖突,可以使用如下命令

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來排除沖突,如下

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 的沖突了

 

也可以強制指定版本的方式來排除依賴沖突,如下

    implementation ('com.google.guava:guava') {
        version {
            strictly '30.1.1-jre'
        }
    }

或者

    implementation ('com.google.guava:guava:30.1.1-jre') {
        force = true
    }

這樣guvua的依賴沖突就解決了

 

參考:gradle依賴沖突解決 和 詳解Gradle依賴沖突解決方式

Downgrading versions and excluding dependencies

 

gradle插件搜索

https://plugins.gradle.org/search

  

implementation、api、compileOnly等的區別

參考:implementation、api、compileOnly區別詳解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM