[Android垛玻、Java]加快gradle構(gòu)建

熟悉Android studio(安卓死丟丟)或者idea的哥們都能深刻體會到gradle構(gòu)建的優(yōu)秀。

同時我們又難以接受的是gradle初始化的緩慢--奶躯,老鐵帚桩,扎心了。

如果你每天是開著VPN不斷線嘹黔,那么可以不用看了 --

其實我們有的時候走心一點可以看到idea(Android studio基于idea社區(qū)開源版制作的账嚎,所以統(tǒng)稱idea)上面任務(wù)進度欄那里有提示正在下載gradle,地址如下:

https://services.gradle.org/distributions/gradle-3.3-all.zip

沒錯儡蔓,上面的地址就是gradle環(huán)境依賴的壓縮包郭蕉,同時在idea的gradle項目build完成后,我們可以在項目目錄下面找到一個gradle目錄喂江,結(jié)構(gòu)示意如下:

  • gradle
    • wrapper
      • gradle-wapper.jar
      • gradle-wapper.properties

我們直接打開gradle-wapper.properties查看到信息如下:

#Thu Mar 23 21:03:17 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

我們在上面的properties里面也能看到有我們項目需要的gradle的構(gòu)建版本信息召锈。重點來了,我們在上面可以看到:

distributionBase=GRADLE_USER_HOME

上面的東西可能一樣望去不知所以获询,但是我們大膽猜測GRADLE_USER_HOME這個東西應(yīng)該是用戶的gradle目錄涨岁,xxxPath可能描述的是某一個路徑,這個時候機靈的我們應(yīng)該百度搜索gradle構(gòu)建緩存目錄吉嚣,直接點開Android Studio 和 gradle 修改緩存文件夾路徑就能看到對gradle緩存目錄的描述:

根據(jù)老司機經(jīng)驗總結(jié)如下:

win:
C:\Users\你的用戶名\.gradle

mac:
/Users/你的用戶名/.gradle

直接進入.gradle緩存目錄梢薪,我們一般可以看到如下結(jié)構(gòu):

  • .gradle
    • daemon
    • native
    • caches
    • wrapper

我們打開wrapper目錄就能印證上面的 wrapper/dists 果然存在,進一步打開尝哆,我們能看到內(nèi)容如下:

gradle.wrapper緩存目錄
gradle.wrapper緩存目錄

驚喜沮尿,突然發(fā)現(xiàn)我上面的gradle-3.3-all在里面,打開gradle-3.3-all剛剛好查看到gradle-3.3-all.zip也在里面较解,這恰恰說明這個就是我們gradle項目的構(gòu)建環(huán)境依賴就在這里畜疾。

所以聰明一點的老司機們都可以把這個wrapper目錄備份下來了,兄弟莫慌印衔,完全不必這個樣子啡捶。我們只需要把我們下載的gradle壓縮包留住就行了。

所以奸焙,構(gòu)建速度加快的思路之文件替換出爐了瞎暑。在我們新項目第一次構(gòu)建很久的時候:

  • 我們直接到.gradle/wrapper下面查找idea正在下載的gradle資源
  • 然后強行退出idea彤敛,
  • 接著下載對應(yīng)的gradle包放到對應(yīng)目錄
  • 重新打開idea的項目

上面這樣我們就能把第一次gradle構(gòu)建環(huán)境依賴快速加載完成。

當(dāng)然了赌,更快的是你的項目在打開之前直接把gradle設(shè)置成國內(nèi)源墨榄,這樣我們的gradle環(huán)境就能快速構(gòu)建了。

葵花寶典勿她,加快gradle項目資源構(gòu)建袄秩、獲取速度

Android studio:

  1. 修改gradle.properties,加入以下代碼
#Gradle守護進程
org.gradle.daemon=true

#并行項目執(zhí)行
org.gradle.parallel=true

#取消檢查lint輸出的增量構(gòu)建
gradle=build -x lint
  1. 配置項目的build.gradle
buildscript {
    repositories {
        // maven庫
        // 先從阿里云maven下載jar若沒有找到逢并,則在后面的倉庫中尋找
        //倉庫優(yōu)先級從上到下順序排列
        maven {
            url "http://maven.aliyun.com/nexus/content/repositories/central"
        }
        jcenter()
        mavenCentral()

    }
    dependencies {
        ···
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        // maven庫
        maven { url "http://maven.aliyun.com/nexus/content/repositories/central" }

        maven { url "https://jitpack.io" }

        jcenter()

        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

//關(guān)閉項目變更后的lint檢查
tasks.whenTaskAdded { task ->
    if (task.name == "lint") {
        task.enabled = false
    }
}

可能一些朋友不明白為什么是項目的build.gradle之剧。按照idea的構(gòu)建來相對eclipse解釋,一個項目就是一個對應(yīng)的工作空間砍聊,每個工作空間下面的項目都是不同的module背稼,也就是項目有build.gradle,module也有對應(yīng)的build.gradle玻蝌。

  1. 刪除其他module中的repositories

我們既然已經(jīng)設(shè)置了所有項目的repositories蟹肘,那么其他module中repositories就沒必要設(shè)置了

idea的gradle項目處理

  1. 在項目的build中加入如下設(shè)置
allprojects {
    repositories {
        // maven庫
        // 先從阿里云maven下載jar若沒有找到,則在后面的倉庫中尋找
        //倉庫優(yōu)先級從上到下順序排列
        maven { url "http://maven.aliyun.com/nexus/content/repositories/central" }

        maven { url "https://jitpack.io" }

        jcenter()

        mavenCentral()
    }
}

tasks.whenTaskAdded { task ->
    if (task.name == "lint") {
        task.enabled = false
    }
}

  1. 刪除其他module中的repositories

我們既然已經(jīng)設(shè)置了所有項目的repositories俯树,那么其他module中repositories就沒必要設(shè)置了蕾哟。

修改idea項目生成代碼模板超燃,加入以上設(shè)置

···未完待續(xù)胚委,且聽下回分解朦促。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末童太,一起剝皮案震驚了整個濱河市米辐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌书释,老刑警劉巖翘贮,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異爆惧,居然都是意外死亡狸页,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門扯再,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芍耘,“玉大人,你說我怎么就攤上這事熄阻≌海” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵秃殉,是天一觀的道長坝初。 經(jīng)常有香客問我浸剩,道長,這世上最難降的妖魔是什么鳄袍? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任绢要,我火速辦了婚禮,結(jié)果婚禮上拗小,老公的妹妹穿的比我還像新娘重罪。我一直安慰自己,他們只是感情好十籍,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布蛆封。 她就那樣靜靜地躺著,像睡著了一般勾栗。 火紅的嫁衣襯著肌膚如雪惨篱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天围俘,我揣著相機與錄音砸讳,去河邊找鬼。 笑死界牡,一個胖子當(dāng)著我的面吹牛簿寂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宿亡,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼常遂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挽荠?” 一聲冷哼從身側(cè)響起克胳,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎圈匆,沒想到半個月后漠另,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡跃赚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年笆搓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纬傲。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡满败,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叹括,到底是詐尸還是另有隱情算墨,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布领猾,位于F島的核電站米同,受9級特大地震影響骇扇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜面粮,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一少孝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熬苍,春花似錦稍走、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柄驻,卻和暖如春狐树,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸿脓。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工抑钟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人野哭。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓在塔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拨黔。 傳聞我的和親對象是個殘疾皇子蛔溃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容