Gradle環(huán)境配置

背景說明

針對Java項目Gradle是一個流行的構(gòu)建工具,比如Cas就是用其構(gòu)建的,再調(diào)試一些開源項目過程中,時常遇到需要搭建Gradle環(huán)境。

解決方案

配置本地倉庫

在build.gradle文件中,使用mavenLocal()

repositories {
 mavenLocal() //直接使用本地maven倉庫
 maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
 mavenCentral()
}

查找依賴路徑

發(fā)現(xiàn)使用mavenLocal() 時Gradle默認(rèn)會按以下順序去查找本地的maven倉庫:USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml >> USER_HOME/.m2/repository

注意,環(huán)境變量要加入M2_HOME, 我們配環(huán)境時很多時候都是使用MAVEN_HOME或者直接在path中輸入bin路徑了,導(dǎo)致mavenLocal無法生效。另外,如果本地沒有相關(guān)jar包,gradle會在下載到USER_HOME/.gradle文件夾下,若想讓gradle下載到指定文件夾,配置GRADLE_USER_HOME環(huán)境變量。

image.png
image.png

加速構(gòu)建設(shè)置

Gradle有個 Daemon配置,開啟這個配置能有效的提高編譯速度構(gòu)建設(shè)置。

在咱們的gradle倉庫.gradle目錄下創(chuàng)建一個gradle.properties 文件 ,再打開該文件在其中添加如下語句保存即可:

org.gradle.daemon=true

配置阿里倉庫

1.在%GRADLE_USER_HOME%或者USER_HOME/.gradle/[GRADLE_USER_HOME未配置]目錄下

2. %GRADLE_HOME%的init.d目錄下

以上兩個目錄均創(chuàng)建名為init.gradle文件,內(nèi)容如下:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

引入本地倉庫

在build.gradle中加入:

def lmr = 'file://' + new File('/maven/repo').absolutePath

repositories {
    mavenCentral()
    mavenLocal()
    maven { url lmr }
}

注意:/maven/repo是maven本地倉庫地址

然后在配置文件中的repositories下添加mavenLocal():

repositories {
    mavenLocal()
    mavenCentral()
}

之后有依賴添加時,gradle會先從本地倉庫中尋找對應(yīng)的jar包依賴,實現(xiàn)jar包的重復(fù)利用。

實際操作方式是gradle找到maven對應(yīng)的jar包,然后復(fù)制一份自己用,所以當(dāng)你的倉庫是gradle和maven混合使用時,大概率會有兩份數(shù)據(jù)冗余;gradle倉庫與maven倉庫是相互獨立和冗余的。

默認(rèn)依賴位置

Mac系統(tǒng)默認(rèn)下載到:/Users/(用戶名)/.gradle/caches/modules-2/files-2.1

Windows系統(tǒng)默認(rèn)下載到:C:\Users(用戶名).gradle\caches\modules-2\files-2.1

加速

強(qiáng)制更新依賴

如果你正在開發(fā)一個庫,并將它傳上 jcenter 或者 jitpack,由于沒上線,于是你一直上傳 1.0 的版本,不停地覆蓋遠(yuǎn)程倉庫上的版本,但是你遺憾地發(fā)現(xiàn)本地的 gradle 出了問題,那么是由于 gradle 在下載依賴的同時自動將其緩存了一份在本地,所以等你第二次開啟一個項目并依賴同一個庫的同一個版本的時候,gradle 實際上只是拿了本地的緩存,但是這份小聰明,對于我前面所說的情況下的開發(fā)人員來說就是一個大麻煩,應(yīng)當(dāng)使用如下命令行命令來強(qiáng)制 gradle 拉去遠(yuǎn)程依賴數(shù)據(jù)。

Windows

gradlew build --refresh-dependencies

Mac

./gradlew build --refresh-dependencies 

注意實現(xiàn)

--refresh 與 -dependencies 不應(yīng)有空格存在,-dependencies 以參數(shù)形式依賴于 –refresh

IDEA環(huán)境配置

解釋參考

image.png

確定配置

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容